nl::Weave::System::Platform::Layer

ملخّص

الدوال

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
هذه أداة خاصة بالنظام الأساسي لطبقة نظام Weave بعد الإعداد.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
هذه الميزة مخصصة لـ طبقة نظام Weave System قبل إيقاف التشغيل.
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 System قبل إيقاف التشغيل.

الدوال

DidInit

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

هذه أداة خاصة بالنظام الأساسي لطبقة نظام Weave بعد الإعداد.

قد يتم إلغاء هذا من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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

DidShutdown

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

هذه الميزة مخصصة لـ طبقة نظام Weave System قبل إيقاف التشغيل.

قد يتم إلغاء هذا من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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

DispatchEvent

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

هذه أداة خاصة بمنصة إرسال الأحداث / الرسائل.

قد يتم إلغاء هذا من خلال تأكيد تعريف المعالج المسبق، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

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

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

DispatchEvents

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 غير متوقعة.
#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().

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

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

GetClock_RealTime

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
الوقت الحالي، معبرًا عنه بتوقيت يونكس الذي تم قياسه بالمللي ثانية.
قيم الإرجاع
WEAVE_SYSTEM_NO_ERROR
إذا نجحت الطريقة.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
ما إذا كان النظام الأساسي قادرًا على التتبع في الوقت الفعلي، غير أنه غير متزامن في الوقت الحالي.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
ما إذا كانت المنصة غير قادرة على التتبع في الوقت الفعلي.

PostEvent

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
مؤشر يشير إلى الكائن Layer لنظام Weave الذي يقدّم طلب النشر.
[in] aType
نوع الحدث المطلوب نشره.
[in,out] anArg
الوسيط المرتبط بالحدث المطلوب نشره.
المرتجعات
WEAVE_SYSTEM_NO_ERROR عند النجاح، وبخلاف ذلك، يظهر خطأ محدد يشير إلى سبب إخفاق التهيئة.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

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

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

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

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

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

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

التفاصيل
المَعلمات
[in] newCurTime
الوقت الحالي الجديد، معبرًا عنه بتوقيت يونكس الذي تم قياسه بالميكرو ثانية.
قيم الإرجاع
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
تنجح دائمًا ما لم يتم تجاوزها.

WillInit

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

هذه أداة خاصة بالإعداد المُسبَق لطبقة نظام Weave.

قد يتم إلغاء هذا من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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

WillShutdown

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

هذه الميزة مخصصة لـ طبقة نظام Weave System قبل إيقاف التشغيل.

قد يتم إلغاء هذا من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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