nl::Weave::النظام::النظام الأساسي::الطبقة

الملخّص

الدوال

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
هذا عنصر جذب بعد إعداد نظام Weave لنظام أساسي.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
هذا عنصر جذب للطبقة لنظام تضمين في نظام Weave لنظام التشغيل الأساسي.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.
GetClock_Monotonic(void)
uint64_t
وظيفة خاصة بالنظام الأساسي للحصول على وقت النظام الأحادي في الثانية.
GetClock_MonotonicHiRes(void)
uint64_t
وظيفة خاصة بالنظام الأساسي للحصول على وقت نظام أحادي الصوت عالي الدقة بالميكروثانية.
GetClock_MonotonicMS(void)
uint64_t
دالة خاصة بالنظام الأساسي للحصول على وقت النظام الأحادي في مللي ثانية.
GetClock_RealTime(uint64_t & curTime)
Error
دالة خاصة بالنظام الأساسي للحصول على الوقت الفعلي (المدني) الحالي بتنسيق توقيت Unix للميكرو ثانية.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
دالة مخصّصة للنظام الأساسي لمعرفة الوقت الفعلي (المدني) الحالي بتنسيق يونكس الزمني بالمللي ثانية.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
هذا هو حدث / رسالة مشاركة خاصة بالنظام الأساسي.
SetClock_RealTime(uint64_t newCurTime)
Error
دالة خاصة بالنظام الأساسي لإعداد الوقت الحالي (المدني) الحالي.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
هذا عنصر بدء الإعداد المسبق لنظام Weave لنظام النظام الأساسي.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
هذا عنصر جذب للطبقة لنظام تضمين في نظام Weave لنظام التشغيل الأساسي.

الدوال

CANNOT TRANSLATE

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

هذا عنصر جذب بعد إعداد نظام Weave لنظام أساسي.

يمكن إلغاء ذلك من خلال الحصول على تعريف معالج المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

التفاصيل
المعلَمات
[in,out] aLayer
يتم إعداد مرجع إلى مثيل طبقة Weave System.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
[in] anError
الحالة العامة التي يتم عرضها عبر نظام Weave Layer ::Init.

إيقاف التشغيل

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

هذا عنصر جذب للطبقة لنظام تضمين في نظام Weave لنظام التشغيل الأساسي.

يمكن إلغاء ذلك من خلال الحصول على تعريف معالج المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

التفاصيل
المعلَمات
[in,out] aLayer
مرجع إلى مثيل Weave System Layer الذي يتم إيقافه.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Shutdown.
[in] anError
الحالة العامة التي يتم عرضها عبر نظام Weave System Layer ::Shutdown method.
المرتجعات
WEAVE_SYSTEM_NO_ERROR في حالة النجاح، أو حدث خطأ محدد يشير إلى سبب إخفاق الإغلاق. وسيؤدي إرجاع الحالة غير الناجحة إلى إلغاء عملية الإيقاف.

الحدث المرسَل

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.

يمكن تجاوز ذلك من خلال الحصول على تعريف المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

ينقل هذا الحدث المحدّد للمعالجة مع إلغاء تجزئة النوع والوسيطات من الحدث وإرساله إلى نظام Weave System Layer::HandleEvent للإرسال الفعلي.

التفاصيل
المعلَمات
[in,out] aLayer
مرجع إلى طبقة الطبقة التي يتم إرسال الأحداث أو الرسائل إليها.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
[in] anEvent
كائن الحدث الخاص بالنظام الأساسي للإرسال.
قيم الإرجاع
#WEAVE_SYSTEM_ERROR_BAD_ARGS
إذا كانت #aLayer أو هدف الحدث فارغ.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
إذا كان نوع الحدث غير معروف.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
إذا كانت حالة كائن طبقة Weave System غير متوقعة.
WEAVE_SYSTEM_NO_ERROR
النجاح.

إرسال الأحداث

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.

يمكن تجاوز ذلك من خلال الحصول على تعريف المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

ويؤثّر ذلك في تكرار الأحداث، والانتظار في قائمة انتظار تقدِّم هذا المثيل، وسحب الأحداث من قائمة الانتظار هذه، ثم إرسالها للتسليم.

التفاصيل
المعلَمات
[in,out] aLayer
مرجع إلى طبقة الطبقة التي يتم إرسال الأحداث أو الرسائل إليها.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
قيم الإرجاع
#WEAVE_SYSTEM_ERROR_BAD_ARGS
إذا كانت #aLayer أو #aContext خالٍ
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
إذا كانت حالة كائن طبقة Weave System غير متوقعة.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
إذا كان نوع الحدث غير معروف.
WEAVE_SYSTEM_NO_ERROR
النجاح.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

وظيفة خاصة بالنظام الأساسي للحصول على وقت النظام الأحادي في الثانية.

ومن المتوقّع أن تعرض هذه الدالة الوقت المنقضي بالميكرو ثانية منذ حقبة عشوائية مُحدَّدة في النظام الأساسي. عمليات تنفيذ النظام الأساسي مُلزَمة بعرض قيمة تتزايد باستمرار (أي لا يحدث مطلقًا) بين عمليات إعادة تشغيل النظام. وبالإضافة إلى ذلك، فإن مصدر الوقت الأساسي مطلوب لوضع علامة مستمرة أثناء أي أوضاع نوم النظام لا تؤدي إلى إعادة التشغيل عند التنشيط.

ليس يُطلب من الحقبة الزمنية التي تعرضها هذه الدالة أن تكون هي نفسها لأي من وظائف GetClock الأخرى...، بما فيها GetClock_MonotonicMS().

من المتوقع أن تكون هذه الوظيفة آمنة في سلسلة محادثات على أي نظام أساسي يستخدم سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالميكروثانية منذ حقبة عشوائية من منصة تحدّدها المنصّة.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

وظيفة خاصة بالنظام الأساسي للحصول على وقت نظام أحادي الصوت عالي الدقة بالميكروثانية.

ومن المتوقّع أن تعرض هذه الدالة الوقت المنقضي بالميكرو ثانية منذ حقبة عشوائية مُحدَّدة في النظام الأساسي. يجب أن تكون القيم التي تعرضها GetClock_MonotonicHiRes() تزداد باستمرار (أي لا يحدث التفاف مطلقًا). يُرجى العِلم بأنّ الموقّت المضمّن ليس مطلوبًا لوضع علامة عليه بشكل مستمر أثناء حالة السكون العميق للنظام.

ويتم تشجيع النظام الأساسي على تنفيذ GetClock_MonotonicHiRes() باستخدام موقِّت عالي الدقة لا يخضع لتعديلات الساعة التدريجية (التقلب). على المنصّات التي لا تتضمّن هذا الموقّت، يمكن أن تعرض GetClock_MonotonicHiRes() القيمة نفسها لـ GetClock_Monotonic().

ليس بالضرورة أن تكون الحقبة الزمنية التي تعرضها هذه الدالة هي نفسها لأي من وظائف GetClock الأخرى....

من المتوقع أن تكون هذه الوظيفة آمنة في سلسلة محادثات على أي نظام أساسي يستخدم سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالميكروثانية منذ حقبة عشوائية من منصة تحدّدها المنصّة.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

دالة خاصة بالنظام الأساسي للحصول على وقت النظام الأحادي في مللي ثانية.

ومن المتوقع أن تعرض هذه الدالة الوقت المنقضي بالمللي ثانية منذ حقبة عشوائية مُحدَّدة من النظام الأساسي. عمليات تنفيذ النظام الأساسي مُلزَمة بعرض قيمة تتزايد باستمرار (أي لا يحدث مطلقًا) بين عمليات إعادة تشغيل النظام. وبالإضافة إلى ذلك، فإن مصدر الوقت الأساسي مطلوب لوضع علامة مستمرة أثناء أي أوضاع نوم النظام لا تؤدي إلى إعادة التشغيل عند التنشيط.

ليس نهاية الفترة الزمنية التي تعرضها هذه الدالة هي نفس المدة الزمنية لأي من وظائف GetClock الأخرى...، بما في ذلك GetClock_Monotonic().

من المتوقع أن تكون هذه الوظيفة آمنة في سلسلة محادثات على أي نظام أساسي يستخدم سلاسل المحادثات.

التفاصيل
المرتجعات
الوقت المنقضي بالمللي ثانية منذ حقبة عشوائية مُحدَّدة في النظام الأساسي.

الحصول على الوقت الفعلي

Error GetClock_RealTime(
  uint64_t & curTime
)

دالة خاصة بالنظام الأساسي للحصول على الوقت الفعلي (المدني) الحالي بتنسيق توقيت Unix للميكرو ثانية.

من المتوقع أن تعرض هذه الدالة النظام الأساسي المحلي في الوقت الفعلي، معبرًا عنه بقيمة وقت Unix يتم قياسها بالميكرو ثانية. يجب تفعيل الساعة الأساسية للإشارة إلى معدّل الثواني الكاملة على الأقل (القيم 1,000,000)، ولكن قد تنقّل بسرعة أكبر.

على هذه الأنظمة الأساسية التي يمكنها تتبع الوقت الفعلي، يجب أن تعرض GetClock_ RealTime() الخطأ WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED عندما لا تتم مزامنة النظام مع الوقت الفعلي.

يجب ألا تنفّذ المنصات التي يتعذّر عليها تتبّع الوقت الفعلي وظيفة الدالة GetClock_ RealTime() ، ما يؤدي إلى فرض حالات تعذُّر ربط الروابط بالميزات التي تعتمد على الوصول إلى الوقت الفعلي. وبدلاً من ذلك، قد توفّر هذه الأنظمة الأساسية تنفيذ GetClock_ RealTime() الذي يؤدي إلى عرض الخطأ WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

من المتوقع أن تكون هذه الوظيفة آمنة في سلسلة محادثات على أي نظام أساسي يستخدم سلاسل المحادثات.

التفاصيل
المعلَمات
[out] curTime
الوقت الحالي، معبرًا عنه باسم وقت نظام التشغيل Unix بمقدار ميكرو ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
إذا كان النظام الأساسي قادرًا على تتبع الوقت الفعلي، ولكنها غير متزامنة في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
إذا لم يتمكّن النظام الأساسي من تتبّع الوقت الفعلي

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

دالة مخصّصة للنظام الأساسي لمعرفة الوقت الفعلي (المدني) الحالي بتنسيق يونكس الزمني بالمللي ثانية.

من المتوقع أن تعرض هذه الدالة النظام الأساسي المحلي في الوقت الفعلي، معبرًا عنه بقيمة وقت Unix يتم قياسها بالمللي ثانية.

راجِع وثائق GetClock_ RealTime() لمعرفة تفاصيل عن السلوك المتوقَّع.

التفاصيل
المعلَمات
[out] curTime
الوقت الحالي، معبرًا عنه باسم وقت نظام التشغيل Unix بمقدار ميلي ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
إذا كان النظام الأساسي قادرًا على تتبع الوقت الفعلي، ولكنها غير متزامنة في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
إذا لم يتمكّن النظام الأساسي من تتبّع الوقت الفعلي

ما بعد الفعالية

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

هذا هو حدث / رسالة مشاركة خاصة بالنظام الأساسي.

يمكن تجاوز ذلك من خلال الحصول على تعريف المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

يؤدي هذا إلى نشر حدث / رسالة من النوع المحدد مع الوسيطة المتوفرة إلى هذه المثيل الخاص بالحدث / قائمة الانتظار الخاصة بالنظام الأساسي.

التفاصيل
المعلَمات
[in,out] aLayer
مؤشر إلى مثيل الطبقة الذي يتم نشر الحدث أو الرسالة عليه.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
[in,out] aTarget
مؤشر إلى عنصر طبقة Weave System الذي يقدِّم طلب النشر.
[in] aType
نوع الحدث المطلوب نشره.
[in,out] anArg
الوسيطة المرتبطة بالحدث المطلوب نشره.
المرتجعات
WEAVE_SYSTEM_NO_ERROR في حالة النجاح، أو حدث خطأ محدد يشير إلى سبب إخفاق الإعداد.

ضبط CClock_الوقت الفعلي

Error SetClock_RealTime(
  uint64_t newCurTime
)

دالة خاصة بالنظام الأساسي لإعداد الوقت الحالي (المدني) الحالي.

نسمي هذا الدالة هذه الدالة لضبط مفهوم النظام الأساسي المحلي في الوقت الفعلي الحالي. يتم التعبير عن الوقت الحالي الجديد بقيمة وقت Unix بمقدار ميكرو ثانية.

بعد ضبط السياسة، من المتوقّع أن تتتبّع ساعة المنصة الأساسية في الوقت الفعلي بدقة تبلغ على الأقل ثوانٍ كاملة.

على الأنظمة الأساسية التي تتيح التتبّع في الوقت الفعلي، يجب أن تعرض دالة SetClock_ RealTime() الخطأ WEAVE_SYSTEM_ERROR_ACCESS_DENIED إذا لم يكن لدى تطبيق الاتصال امتياز ضبط الوقت الحالي.

يجب ألا تنفّذ المنصات التي لا يمكنها تتبّع الوقت الفعلي أو التي لا توفّر إمكانية ضبط الوقت الفعلي دالة {0}SetClock_ RealTime(، وبالتالي يتم فرض حالات تعذُّر وقت الربط للميزات التي تعتمد على إعداد الوقت الفعلي. وبدلاً من ذلك، قد توفّر هذه الأنظمة الأساسية تنفيذ SetClock_ RealTime() الذي يؤدي إلى عرض الخطأ WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

من المتوقع أن تكون هذه الوظيفة آمنة في سلسلة محادثات على أي نظام أساسي يستخدم سلاسل المحادثات.

التفاصيل
المعلَمات
[in] newCurTime
وتم قياس الوقت الحالي الجديد معبرًا عنه باسم وقت نظام التشغيل Unix إلى ميكروثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
إذا لم يتمكّن النظام الأساسي من تتبّع الوقت الفعلي
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
إذا لم يكن لتطبيق الاتصال امتياز تحديد الوقت الحالي.

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

هو حدث مخصّص للنظام الأساسي / حدث مخصّص لإرسال الرسائل.

يمكن تجاوز ذلك من خلال الحصول على تعريف المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FunctionS.

التفاصيل
المعلَمات
[in,out] aLayer
مرجع إلى طبقة الطبقة التي يتم إرسال الأحداث أو الرسائل إليها.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
[in] aMilliseconds
عدد المللي ثانية لضبط الموقّت.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
ينجح دائمًا ما لم يتم تجاوزه.

ويل إنيت

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

هذا عنصر بدء الإعداد المسبق لنظام Weave لنظام النظام الأساسي.

يمكن إلغاء ذلك من خلال الحصول على تعريف معالج المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

التفاصيل
المعلَمات
[in,out] aLayer
يتم إعداد مرجع إلى مثيل طبقة Weave System.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Init.
المرتجعات
WEAVE_SYSTEM_NO_ERROR في حالة النجاح، أو حدث خطأ محدد يشير إلى سبب إخفاق الإعداد. وسيؤدي إرجاع الحالة غير الناجحة إلى إلغاء الإعداد.

إيقاف التشغيل

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

هذا عنصر جذب للطبقة لنظام تضمين في نظام Weave لنظام التشغيل الأساسي.

يمكن إلغاء ذلك من خلال الحصول على تعريف معالج المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FunctionS.

التفاصيل
المعلَمات
[in,out] aLayer
مؤشر لمثيل طبقة Wave System الذي يتم إيقافه.
[in,out] aContext
تم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة إعداد الطبقة، ::Shutdown.
المرتجعات
WEAVE_SYSTEM_NO_ERROR في حالة النجاح، أو حدث خطأ محدد يشير إلى سبب إخفاق الإغلاق. وسيؤدي إرجاع الحالة غير الناجحة إلى إلغاء عملية الإيقاف.