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

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

خلاصه

برای WEAVE_SYSTEM_CONFIG_USE_SOCKETS ، اعلان آمادگی رویداد از طریق اجرای نظرسنجی/انتخاب سنتی در سازگاری پلت فرم انجام می شود.

برای WEAVE_SYSTEM_CONFIG_USE_LWIP ، اعلان آمادگی رویداد از طریق رویدادها/پیام ها و قلاب های مخصوص پلتفرم و سیستم برای سیستم رویداد/پیام انجام می شود.

سازندگان و ویرانگرها

Layer (void)

انواع عمومی

EventHandler )(Object &aTarget, EventType aEventType, uintptr_t aArgument) typedef
Error(*
TimerCompleteFunct )(Layer *aLayer, void *aAppState, Error aError) typedef
void(*

توابع عمومی

AddEventHandlerDelegate ( LwIPEventHandlerDelegate & aDelegate)
Error
این یک نماینده کنترل کننده رویداد را به لایه سیستم اضافه می کند تا توانایی آن برای مدیریت رویدادهای LwIP را گسترش دهد.
CancelTimer (TimerCompleteFunct aOnComplete, void *aAppState)
void
این روش یک تایمر تک شات را که زودتر از طریق StartTimer() شروع شده بود لغو می کند.
DispatchEvent (Event aEvent)
Error
این رویداد مشخص شده را برای مدیریت توسط این نمونه ارسال می کند.
DispatchEvents (void)
Error
این یک لفاف نحوی در اطراف یک قلاب مخصوص پلتفرم است که یک حلقه رویداد را تحت تأثیر قرار می‌دهد، منتظر صفی است که این نمونه را سرویس می‌دهد، رویدادها را از آن صف خارج می‌کند و سپس آنها را برای رسیدگی ارسال می‌کند.
GetPlatformData (void) const
void *
این هر گونه داده پلتفرم خاص مشتری را که به نمونه اختصاص داده شده است، برمی گرداند، اگر قبلا تنظیم شده باشد.
HandleEvent ( Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
این امر اعزام و مدیریت یک رویداد لایه سیستم Weave را پیاده سازی می کند.
HandlePlatformTimer (void)
Error
رویداد انقضای تایمر پلت فرم را مدیریت کنید.
HandleSelectResult (int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
I/O را از یک تماس انتخابی کنترل کنید.
Init (void *aContext)
Error
NewTimer ( Timer *& aTimerPtr)
Error
PostEvent ( Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
این یک رویداد / پیام از نوع مشخص شده با آرگومان ارائه شده در صف رویداد ویژه پلتفرم این نمونه پست می کند.
PrepareSelect (int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
مجموعه ای از توصیفگرهای فایل را برای select() آماده کنید تا با آنها کار کنید.
ScheduleWork (TimerCompleteFunct aComplete, void *aAppState)
Error
یک تابع با امضای یکسان با TimerCompleteFunct را برنامه ریزی می کند تا در اسرع وقت روی نخ Weave اجرا شود.
SetPlatformData (void *aPlatformData)
void
این داده‌های پلتفرم خاص مشتری مشخص شده را برای بازیابی بعدی توسط پلتفرم کلاینت به نمونه تنظیم می‌کند.
Shutdown (void)
Error
StartTimer (uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
این روش یک تایمر یک شات را شروع می کند.
State (void) const
LayerState
این وضعیت فعلی شی لایه را برمی گرداند.
WakeSelect (void)
void
رشته ورودی/خروجی را که توصیفگرهای فایل را با استفاده از select() نظارت می‌کند، با نوشتن یک بایت در لوله بیدار کنید.

توابع استاتیک عمومی

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
زمان واقعی (مدنی) فعلی را در قالب زمان یونیکس میلی ثانیه ای برمی گرداند.
SetClock_RealTime (uint64_t newCurTime)
Error
مفهوم پلتفرم از زمان واقعی (مدنی) فعلی را تنظیم می کند.

انواع عمومی

رویداد Handler

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

TimerCompleteFunct

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

توابع عمومی

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

این یک نماینده کنترل کننده رویداد را به لایه سیستم اضافه می کند تا توانایی آن برای مدیریت رویدادهای LwIP را گسترش دهد.

جزئیات
پارامترها
[in] aDelegate
ساختار نمایندگی کنترل کننده رویداد LwIP غیراصولی
ارزش های بازگشتی
WEAVE_SYSTEM_NO_ERROR
در مورد موفقیت
WEAVE_SYSTEM_ERROR_BAD_ARGS
اگر نشانگر تابع موجود در aDelegate NULL باشد

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

این روش یک تایمر تک شات را که زودتر از طریق StartTimer() شروع شده بود لغو می کند.

جزئیات
پارامترها
[in] aOnComplete
اشاره گر به تابع callback مورد استفاده در فراخوانی StartTimer() .
[in] aAppState
یک اشاره گر به شیء حالت برنامه مورد استفاده در فراخوانی StartTimer() .

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

این رویداد مشخص شده را برای مدیریت توسط این نمونه ارسال می کند.

جداسازی نوع و آرگومان‌های رویداد توسط یک قلاب مخصوص پلتفرم انجام می‌شود که باید برای ارسال واقعی به Layer::HandleEvent برگردد.

جزئیات
پارامترها
[in] aEvent
شی رویداد ویژه پلت فرم برای ارسال برای مدیریت.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل شکست اولیه را نشان می دهد.

DispatchEvents

Error DispatchEvents(
  void
)

این یک لفاف نحوی در اطراف یک قلاب مخصوص پلتفرم است که یک حلقه رویداد را تحت تأثیر قرار می‌دهد، منتظر صفی است که این نمونه را سرویس می‌دهد، رویدادها را از آن صف خارج می‌کند و سپس آنها را برای رسیدگی ارسال می‌کند.

جزئیات
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت؛ در غیر این صورت، یک خطای خاص که دلیل شکست اولیه را نشان می دهد.

GetPlatformData

void * GetPlatformData(
  void
) const 

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

جزئیات
برمی گرداند
داده‌های پلتفرم خاص مشتری، اگر قبلاً تنظیم شده باشد. در غیر این صورت، NULL.

HandleEvent

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

این امر اعزام و مدیریت یک رویداد لایه سیستم Weave را پیاده سازی می کند.

جزئیات
پارامترها
[in,out] aTarget
ارجاع به شی لایه ای که رویداد به آن هدف گذاری شده است.
[in] aEventType
نوع رویداد/پیام برای رسیدگی.
[in] aArgument
آرگومان مرتبط با رویداد / پیام.
ارزش های بازگشتی
WEAVE_SYSTEM_NO_ERROR
در مورد موفقیت
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
اگر وضعیت آبجکت InetLayer نادرست باشد.
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
اگر نوع رویداد شناسایی نشده باشد.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

رویداد انقضای تایمر پلت فرم را مدیریت کنید.

nl::Weave::System::Timer::HandleExpiredTimers را برای رسیدگی به تایمرهای منقضی شده فراخوانی می کند. فرض بر این است که این API فقط در زمانی که روی رشته ای است که دارای شی لایه Weave System است فراخوانی می شود.

جزئیات
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در مورد موفقیت، کد خطا در غیر این صورت.

HandleSelectResult

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

I/O را از یک تماس انتخابی کنترل کنید.

این روش رویداد ورودی/خروجی معلق را در هر نقطه پایانی فعال ثبت می‌کند و سپس توابع مدیریت ورودی/خروجی مربوطه را برای آن نقاط پایانی فراخوانی می‌کند.

جزئیات
پارامترها
[in] aSetSize
مقدار بازگشتی تماس انتخابی.
[in] aReadSet
اشاره گر به مجموعه توصیفگرهای فایل خوانده شده.
[in] aWriteSet
اشاره گر به مجموعه توصیف کننده های فایل نوشتن.
[in] aExceptionSet
اشاره گر به مجموعه توصیفگرهای فایل با خطا.

شروع کنید

Error Init(
  void *aContext
)

لایه

 Layer(
  void
)

نیوتایمر

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

این یک رویداد / پیام از نوع مشخص شده با آرگومان ارائه شده در صف رویداد ویژه پلتفرم این نمونه پست می کند.

جزئیات
پارامترها
[in,out] aTarget
یک اشاره گر به شی Weave System Layer که درخواست پست را می دهد.
[in] aEventType
نوع رویداد برای ارسال
[in,out] aArgument
استدلال مرتبط با رویداد برای ارسال.
ارزش های بازگشتی
WEAVE_SYSTEM_NO_ERROR
در مورد موفقیت
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
اگر وضعیت جسم لایه نادرست باشد.
WEAVE_SYSTEM_ERROR_NO_MEMORY
اگر صف رویداد از قبل پر شده باشد.
other
خطاهای خاص پلتفرم ایجاد شده که دلیل شکست را نشان می دهد.

PrepareSelect

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

مجموعه ای از توصیفگرهای فایل را برای select() آماده کنید تا با آنها کار کنید.

جزئیات
پارامترها
[out] aSetSize
محدوده توصیفگرهای فایل در مجموعه توصیفگر فایل.
[in] aReadSet
اشاره گر به مجموعه توصیفگرهای فایل قابل خواندن.
[in] aWriteSet
اشاره گر به مجموعه توصیفگرهای فایل قابل نوشتن.
[in] aExceptionSet
اشاره گر به مجموعه توصیفگرهای فایل با خطا.
[in] aSleepTime
اشاره به حداکثر زمان خواب.

ScheduleWork

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

یک تابع با امضای یکسان با TimerCompleteFunct را برنامه ریزی می کند تا در اسرع وقت روی نخ Weave اجرا شود.

جزئیات
پارامترها
[in] aComplete
یک اشاره گر به یک تابع برگشت به فراخوانی که هنگام روشن شدن این تایمر فراخوانی می شود.
[in] aAppState
یک اشاره گر به یک شیء حالت برنامه کاربردی که به عنوان آرگومان به تابع callback ارسال می شود.
ارزش های بازگشتی
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
اگر SystemLayer مقداردهی اولیه نشده باشد.
WEAVE_SYSTEM_ERROR_NO_MEMORY
اگر SystemLayer نتواند تایمر جدیدی را اختصاص دهد.
WEAVE_SYSTEM_NO_ERROR
در مورد موفقیت

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

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

جزئیات
پارامترها
[in] aPlatformData
داده های پلت فرم مشتری خاص برای تنظیم.

خاموش شدن

Error Shutdown(
  void
)

StartTimer

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

این روش یک تایمر یک شات را شروع می کند.

جزئیات
پارامترها
[in] aMilliseconds
زمان انقضا بر حسب میلی ثانیه
[in] aComplete
یک اشاره گر به تابعی که با انقضای تایمر فراخوانی می شود.
[in] aAppState
یک اشاره گر به شیء حالت برنامه که در زمان منقضی شدن زمان سنج استفاده می شود.
برمی گرداند
WEAVE_SYSTEM_NO_ERROR در موفقیت.
برمی گرداند
WEAVE_SYSTEM_ERROR_NO_MEMORY اگر تایمر قابل تخصیص نباشد.
برمی گرداند
مقدار دیگر نشان‌دهنده تایمر شروع نشد.

ایالت

LayerState State(
  void
) const 

این وضعیت فعلی شی لایه را برمی گرداند.

WakeSelect

void WakeSelect(
  void
)

رشته ورودی/خروجی را که توصیفگرهای فایل را با استفاده از select() نظارت می‌کند، با نوشتن یک بایت در لوله بیدار کنید.

توجه: اگر WakeSelect() از داخل HandleSelectResult() فراخوانی شود، می توان از نوشتن در wake pipe صرفنظر کرد، زیرا رشته ورودی/خروجی از قبل بیدار است. علاوه بر این، برای ما مهم نیست که این نوشتن با شکست مواجه شود، زیرا تنها شکست احتمالی معقول این است که لوله پر است، در این صورت رشته فراخوان انتخاب شده به هر حال بیدار می شود.

توابع استاتیک عمومی

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

زمان سیستم یکنواخت را بر حسب واحد میکروثانیه برمی‌گرداند.

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

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

این عملکرد در هر پلتفرمی که از threading استفاده می‌کند تضمین شده است که از نظر نخ ایمن است.

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

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

زمان سیستم یکنواخت (بالقوه) با وضوح بالا را در واحد میکروثانیه برمی‌گرداند.

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

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

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

این عملکرد در هر پلتفرمی که از threading استفاده می‌کند تضمین شده است که از نظر نخ ایمن است.

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

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

زمان سیستم یکنواخت را در واحد میلی ثانیه برمی گرداند.

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

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

این عملکرد در هر پلتفرمی که از 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
)

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

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

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

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

این عملکرد در هر پلتفرمی که از threading استفاده می‌کند تضمین شده است که از نظر نخ ایمن است.

جزئیات
پارامترها
[out] curTime
زمان فعلی، به صورت زمان یونیکس با مقیاس میلی ثانیه بیان می شود.
ارزش های بازگشتی
WEAVE_SYSTEM_NO_ERROR
اگر روش موفق شد.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
اگر پلتفرم قادر به ردیابی زمان واقعی باشد، اما در حال حاضر غیرهمگام است.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
اگر پلتفرم قادر به ردیابی زمان واقعی نباشد.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

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

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

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

برخی از پلتفرم‌ها ممکن است برنامه‌ها یا فرآیندهایی را که می‌توانند زمان واقعی تنظیم کنند، محدود کنند. اگر تماس گیرنده اجازه تغییر زمان واقعی را نداشته باشد، تابع 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
اگر برنامه تماس گیرنده امتیاز تنظیم زمان فعلی را ندارد.