nl:: بافت:: سیستم:: سکو:: لایه

خلاصه

کارکرد

DidInit ( Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
این یک قلاب مخصوص پلتفرم Weave System Layer پس از مقداردهی اولیه است.
DidShutdown ( Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
این یک قلاب مخصوص پلتفرم Weave System Layer قبل از خاموش شدن است.
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
تابع پلتفرم خاص برای دریافت زمان واقعی (مدنی) فعلی در قالب زمان یونیکس میکروثانیه.
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 System Layer از قبل اولیه سازی است.
WillShutdown ( Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
این یک قلاب مخصوص پلتفرم Weave System Layer قبل از خاموش شدن است.

کارکرد

DidInit

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

این یک قلاب مخصوص پلتفرم Weave System Layer پس از مقداردهی اولیه است.

این ممکن است با بیان تعریف پیش پردازنده، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS لغو شود.

جزئیات
مولفه های
[in,out] aLayer
ارجاع به نمونه Weave System Layer که مقداردهی اولیه می شود.
[in,out] aContext
داده های زمینه خاص پلت فرم به روش اولیه سازی لایه، ::Init ارسال می شود.
[in] anError
وضعیت کلی از طریق روش Weave System Layer ::Init برگردانده می شود.

DidShutdown

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

این یک قلاب مخصوص پلتفرم Weave System Layer قبل از خاموش شدن است.

این ممکن است با بیان تعریف پیش پردازنده، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS لغو شود.

جزئیات
مولفه های
[in,out] aLayer
اشاره ای به نمونه Weave System Layer در حال خاموش شدن.
[in,out] aContext
داده های زمینه خاص پلت فرم به روش اولیه سازی لایه ارسال می شود، :: Shutdown.
[in] anError
وضعیت کلی از طریق روش Weave System Layer ::Shutdown برگردانده می شود.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل خرابی خاموش شدن را نشان می دهد. بازگشت وضعیت ناموفق، خاموش شدن را لغو می کند.

DispatchEvent

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 یا هدف رویداد 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 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() باشد.

انتظار می رود این تابع در هر پلتفرمی که از threading استفاده می کند، ایمن باشد.

جزئیات
برمی گرداند
زمان سپری شده در میکروثانیه از یک دوره دلخواه و مبتنی بر پلت فرم.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

تابع پلتفرم خاص برای دریافت زمان سیستم یکنواخت با وضوح بالا در میکروثانیه.

انتظار می رود این تابع زمان سپری شده را از یک دوره دلخواه و تعریف شده توسط پلت فرم در میکروثانیه برگرداند. مقادیر بازگردانده شده توسط GetClock_MonotonicHiRes() باید همیشه در حال افزایش باشند (یعنی هرگز wrap نکنید). با این حال، تایمر زیربنایی نیازی به تیک زدن مداوم در حالت خواب عمیق سیستم ندارد .

پلتفرم تشویق می شود که GetClock_MonotonicHiRes() را با استفاده از یک تایمر با وضوح بالا که تحت تنظیمات تدریجی ساعت قرار نمی گیرد (slewing) پیاده سازی کند. در پلتفرم‌های بدون چنین تایمر، GetClock_MonotonicHiRes() می‌تواند همان مقدار GetClock_Monotonic را برگرداند.

نیازی نیست که دوره زمانی بازگردانده شده توسط این تابع مانند سایر توابع GetClock... باشد.

انتظار می رود این تابع در هر پلتفرمی که از threading استفاده می کند، ایمن باشد.

جزئیات
برمی گرداند
زمان سپری شده در میکروثانیه از یک دوره دلخواه و مبتنی بر پلت فرم.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

تابع پلتفرم خاص برای دریافت زمان سیستم یکنواخت در میلی ثانیه.

انتظار می رود این تابع زمان سپری شده را از یک دوره دلخواه و تعریف شده توسط پلت فرم در میلی ثانیه برگرداند. پیاده‌سازی‌های پلتفرم موظفند مقداری را که بین راه‌اندازی مجدد سیستم همیشه در حال افزایش است (یعنی هرگز بسته نمی‌شود) برگردانند. علاوه بر این، منبع زمانی زیربنایی باید به طور مداوم در هر حالت خواب سیستم که مستلزم راه اندازی مجدد پس از بیداری نیست، علامت بزند.

لازم نیست که دوره زمانی بازگردانده شده توسط این تابع، مانند زمان دیگر توابع GetClock...، از جمله GetClock_Monotonic() باشد.

انتظار می رود این تابع در هر پلتفرمی که از threading استفاده می کند، ایمن باشد.

جزئیات
برمی گرداند
زمان سپری شده بر حسب میلی ثانیه از یک دوره دلخواه و مبتنی بر پلت فرم.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

تابع پلتفرم خاص برای دریافت زمان واقعی (مدنی) فعلی در قالب زمان یونیکس میکروثانیه.

انتظار می رود این تابع مفهوم زمان واقعی فعلی را که به صورت یک مقدار زمانی یونیکس در مقیاس میکروثانیه بیان می شود، برگرداند. ساعت زیرین باید با سرعت حداقل در ثانیه های کامل (مقادیر 1,000,000) تیک بزند، اما ممکن است سریعتر تیک بزند.

در پلتفرم هایی که قادر به ردیابی بلادرنگ هستند، هر زمان که سیستم با زمان واقعی غیر همگام شود، GetClock_RealTime() باید خطای WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED را برگرداند.

پلتفرم هایی که قادر به ردیابی بلادرنگ نیستند، نباید تابع GetClock_RealTime() را پیاده سازی کنند، در نتیجه باعث می شود تا ویژگی هایی که به دسترسی به زمان واقعی بستگی دارد، در زمان اتصال خراب شوند. از طرف دیگر، چنین پلتفرم هایی ممکن است پیاده سازی ()GetClock_RealTime را ارائه دهند که خطای WEAVE_SYSTEM_ERROR_NOT_SUPPORTED را برمی گرداند.

انتظار می رود این تابع در هر پلتفرمی که از threading استفاده می کند، ایمن باشد.

جزئیات
مولفه های
[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
)

تابع پلتفرم خاص برای دریافت زمان واقعی (مدنی) فعلی در قالب زمان یونیکس میلی ثانیه.

انتظار می رود این تابع مفهوم زمان واقعی فعلی را که به صورت یک مقدار زمانی یونیکس در مقیاس میلی ثانیه بیان می شود، برگرداند.

برای جزئیات رفتار مورد انتظار، به مستندات 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
یک اشاره گر به شی Weave System Layer که درخواست پست را می دهد.
[in] aType
نوع رویداد برای ارسال
[in,out] anArg
استدلال مرتبط با رویداد برای ارسال.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل شکست اولیه را نشان می دهد.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

عملکرد ویژه پلت فرم برای تنظیم زمان واقعی (مدنی) فعلی.

Weave این تابع را برای تنظیم مفهوم زمان واقعی فعلی پلت فرم محلی فراخوانی می کند. زمان فعلی جدید به عنوان یک مقدار زمان یونیکس با مقیاس میکروثانیه بیان می شود.

پس از تنظیم، انتظار می رود ساعت پلت فرم زیرین زمان واقعی را با جزئیات حداقل ثانیه کامل ردیابی کند.

در پلتفرم هایی که از ردیابی زمان واقعی پشتیبانی می کنند، تابع SetClock_RealTime() باید خطای WEAVE_SYSTEM_ERROR_ACCESS_DENIED را برگرداند اگر برنامه تماس گیرنده امتیاز تنظیم زمان فعلی را نداشته باشد.

پلتفرم هایی که قادر به ردیابی زمان واقعی نیستند، یا توانایی تنظیم زمان واقعی را ارائه نمی دهند، نباید تابع SetClock_RealTime() را پیاده سازی کنند، در نتیجه ویژگی هایی را که به تنظیم زمان واقعی بستگی دارد، مجبور به شکست در زمان اتصال می کنند. از طرف دیگر، چنین پلتفرم هایی ممکن است پیاده سازی ()SetClock_RealTime را ارائه دهند که خطای WEAVE_SYSTEM_ERROR_NOT_SUPPORTED را برمی گرداند.

انتظار می رود این تابع در هر پلتفرمی که از threading استفاده می کند، ایمن باشد.

جزئیات
مولفه های
[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 System Layer از قبل اولیه سازی است.

این ممکن است با بیان تعریف پیش پردازنده، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS لغو شود.

جزئیات
مولفه های
[in,out] aLayer
ارجاع به نمونه Weave System Layer که مقداردهی اولیه می شود.
[in,out] aContext
داده های زمینه خاص پلت فرم به روش اولیه سازی لایه، ::Init ارسال می شود.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل شکست اولیه را نشان می دهد. بازگشت وضعیت ناموفق، اولیه سازی را لغو می کند.

WillShutdown

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

این یک قلاب مخصوص پلتفرم Weave System Layer قبل از خاموش شدن است.

این ممکن است با بیان تعریف پیش پردازنده، WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS لغو شود.

جزئیات
مولفه های
[in,out] aLayer
اشاره‌ای به خاموش شدن نمونه Weave System Layer .
[in,out] aContext
داده های زمینه خاص پلت فرم به روش اولیه سازی لایه ارسال می شود، :: Shutdown.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل خرابی خاموش شدن را نشان می دهد. بازگشت وضعیت ناموفق، خاموش شدن را لغو می کند.