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 خاص بالنظام الأساسي.
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
وظيفة خاصة بالنظام الأساسي للحصول على الوقت الحقيقي (المدني) الحالي بتنسيق توقيت Unix بالمللي ثانية.
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 خاص بالنظام الأساسي.

الدوال

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
الحالة العامة التي يتم عرضها عبر طريقة Layer ::Init لنظام Weave.

DidShutdown

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

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

يمكن أن يتم تجاوز ذلك من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

التفاصيل
المعلمات
[in,out] aLayer
إشارة إلى إيقاف مثيل طبقة نظام Weave.
[in,out] aContext
يتم تمرير بيانات السياق الخاصة بالنظام الأساسي إلى طريقة تهيئة الطبقة، ::إيقاف التشغيل.
[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 أو كان هدف الحدث فارغًا.
#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 هي "NULL" (فارغ).
#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
الوقت الحالي، ويتم التعبير عنه بتوقيت يونكس الذي تم قياسه بالميكرو ثانية.
قيم الإرجاع
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 بالمللي ثانية.

ومن المتوقّع أن تعرض هذه الدالة فكرة النظام الأساسي المحلي عن الوقت الفعلي الحالي، ويتم التعبير عنه بقيمة وقت 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
مؤشر إلى كائن طبقة نظام التنسج الذي يجري طلب النشر
[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 خاص بالنظام الأساسي.

يمكن أن يتم تجاوز ذلك من خلال تأكيد تعريف المعالج الأولي، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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