nl::Weave::System::Layer

#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, המערכת מטפלת בהתראות מוּכנוּת לאירועים באמצעות אירועים או הודעות וקטעי הוק (hooks) ספציפיים לפלטפורמה ולמערכת עבור מערכת האירועים/ההודעות.

בונים והורסים

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
הפעולה הזאת מוסיפה הענקת גישה ל-event handler לשכבת המערכת, כדי להרחיב את היכולת שלה לטפל באירועי 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
פעולה זו מיישמת את השליחה והטיפול בפועל של אירוע Layer במערכת Weave.
HandlePlatformTimer(void)
Error
טיפול באירוע תפוגת התוקף של הטיימר של הפלטפורמה.
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
טיפול בקלט של קלט/פלט משיחה נבחרת.
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 thread.
SetPlatformData(void *aPlatformData)
void
הפעולה הזאת מגדירה את נתוני הפלטפורמה הספציפיים ללקוח למכונה לצורך אחזור מאוחר יותר על ידי פלטפורמת הלקוח.
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
השיטה הזו מפעילה טיימר חד-פעמי.
State(void) const
LayerState
הפעולה הזו מחזירה את המצב הנוכחי של אובייקט השכבה.
WakeSelect(void)
void
להוציא ממצב שינה את ה-thread של קלט/פלט (I/O) שעוקב אחרי תיאורי הקבצים באמצעות select() . לשם כך צריך לכתוב בייט יחיד בצינור עיבוד הנתונים ממצב שינה.

פונקציות סטטיות ציבוריות

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 של אלפית שנייה.
SetClock_RealTime(uint64_t newCurTime)
Error
מגדיר את התפיסה של הפלטפורמה לגבי הזמן האמיתי (האזרחי) הנוכחי.

סוגים ציבוריים

EventHandler

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

TimerCompleteFunct

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

תפקידים ציבוריים

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

הפעולה הזאת מוסיפה הענקת גישה ל-event handler לשכבת המערכת, כדי להרחיב את היכולת שלה לטפל באירועי LwIP.

פרטים
פרמטרים
[in] aDelegate
מבנה האצלה של handler של אירועי LwIP שלא התחילו
ערכים מוחזרים
WEAVE_SYSTEM_NO_ERROR
בהצלחה.
WEAVE_SYSTEM_ERROR_BAD_ARGS
אם מצביע הפונקציה שכלול בהרשאה הוא NULL

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

השיטה הזו מבטלת טיימר חד-פעמי שהתחיל מוקדם יותר עד StartTimer().

פרטים
פרמטרים
[in] aOnComplete
מפנה לפונקציית הקריאה החוזרת (callback) שנעשה בה שימוש בקריאה ל-StartTimer().
[in] aAppState
מצביע לאובייקט של מצב האפליקציה שמשמש לקריאה ל-StartTimer().

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

הפעולה הזו שולחת את האירוע שצוין לטיפול במופע הזה.

ביטול הסידור של הסוג והארגומנטים מהאירוע מתבצע באמצעות רכיב הוק (hook) ספציפי לפלטפורמה, שלאחר מכן צריך לחזור אל Layer::HandleEvent (שכבה::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
)

פעולה זו מיישמת את השליחה והטיפול בפועל של אירוע Layer במערכת 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::מערכת::טיימר::HandleExpiredTimers לטיפול בטיימרים שפג תוקפם. ההנחה היא שה-API הזה מופעל רק בזמן שהוא נמצא ב-thread שבבעלותו אובייקט Layer של מערכת Weave.

פרטים
החזרות
WEAVE_SYSTEM_NO_ERROR - בהצלחה, אחרת קוד השגיאה.

HandleSelectResult

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

טיפול בקלט של קלט/פלט משיחה נבחרת.

השיטה הזו רושמת את אירוע I/O שבהמתנה בכל נקודת קצה פעילה, ואז מפעילה את פונקציות הטיפול ב-I/O המתאימות לנקודות הקצה האלה.

פרטים
פרמטרים
[in] aSetSize
הערך המוחזר של השיחה שנבחרה.
[in] aReadSet
מצביע על קבוצת התיאורים של הקבצים שנקראו.
[in] aWriteSet
מצביע אל קבוצת מתארי הקובץ לכתיבה.
[in] aExceptionSet
מצביע על קבוצת מתארי הקבצים עם שגיאות.

הפעלה

Error Init(
  void *aContext
)

שכבה

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

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

הפעולה הזו שולחת אירוע / הודעה מהסוג שצוין עם הארגומנט שסופק לתור האירועים הספציפיים לפלטפורמה של המופע הזה.

פרטים
פרמטרים
[in,out] aTarget
מצביע אל האובייקט שכבה של מערכת Weave System ששולח את בקשת הפרסום.
[in] aEventType
סוג האירוע לפרסום.
[in,out] aArgument
הארגומנט המשויך לאירוע שיש לפרסם.
ערכים מוחזרים
WEAVE_SYSTEM_NO_ERROR
בהצלחה.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
אם המצב של האובייקט Layer שגוי.
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 thread.

פרטים
פרמטרים
[in] aComplete
מצביע לפונקציית קריאה חוזרת (callback) שיש לקרוא לה כשהטיימר הזה מופעל.
[in] aAppState
מצביע לאובייקט של מצב אפליקציה שיועבר אל פונקציית הקריאה החוזרת כארגומנט.
ערכים מוחזרים
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
)

להוציא ממצב שינה את ה-thread של קלט/פלט (I/O) שעוקב אחרי תיאורי הקבצים באמצעות select() . לשם כך צריך לכתוב בייט יחיד בצינור עיבוד הנתונים ממצב שינה.

הערה: אם מפעילים את הפונקציה WakeSelect() מתוך HandleSelectResult(), אפשר לדלג על הכתיבה בצינור ההשכמה, כי ה-thread של קלט/פלט (I/O) כבר לא פעיל. בנוסף, לא משנה לנו אם הכתיבה תיכשל כי הכשל הסביר היחיד הוא שהצינור מלא, במקרה כזה ה-thread שנבחר יתעורר ממילא למצב שינה.

פונקציות סטטיות ציבוריות

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

מחזירה זמן מערכת מונוטוני ביחידות של מיליוניות השנייה.

הפונקציה הזו מחזירה את הזמן שחלף במיליוניות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה. מובטח שהערך שמוחזר ימשיך לעלות באופן קבוע (כלומר, לא גולש אף פעם) בין אתחולים מחדש של המערכת. בנוסף, מובטח שמקור הזמן הבסיסי יסומן באופן רציף בכל מצבי השינה של המערכת שלא כרוכים בהפעלה מחדש לאחר התעוררות.

למרות שפלטפורמות מסוימות עשויות להחזיר ערך שמודד את זמן האתחול של המערכת, אפליקציות לא צריכות להסתמך על כך. בנוסף, התקופה של GetClock_Monotonic() לא תהיה זהה לזו של פונקציות GetClock... אחרות. לכן, ניתן לבצע חישובים של זמן יחסי רק על ערכים שמוחזרת על ידי אותה פונקציה.

אין ספק שהפונקציה הזו תהיה בטוחה לשרשורים בכל פלטפורמה שכוללת שימוש בשרשור.

פרטים
החזרות
הזמן שחלף במיליוניות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

מחזירה זמן של מערכת מונוטונית (שעשויה להיות לו) גבוהה, ביחידות של מיליוניות השנייה.

הפונקציה הזו מחזירה את הזמן שחלף במיליוניות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה. מובטח שהערך שמוחזר ימשיך לעלות באופן קבוע (כלומר, לא גולש אף פעם) בין אתחולים מחדש של המערכת. עם זאת, הטיימר הבסיסי לא נדרש כדי לפעול באופן רציף במצבי שינה עמוקה של המערכת.

בפלטפורמות מסוימות יש אפשרות להטמיע את GetClock_MonotonicHiRes() באמצעות טיימר ברזולוציה גבוהה שיכול להיות מדויק יותר מ-GetClock_Monotonic(), כך שלא ניתן לבצע התאמות הדרגתיות בשעון. במערכות שאין בהן טיימר כזה, יכול להיות פשוט להחזיר את אותו הערך כמו GetClock_Monotonic().

תקופת הזמן שמוחזרת על ידי GetClock_MonotonicHiRes() לא חייבת להיות זהה לזו של פונקציות GetClock... אחרות, כולל GetClock_Monotonic().

אין ספק שהפונקציה הזו תהיה בטוחה לשרשורים בכל פלטפורמה שכוללת שימוש בשרשור.

פרטים
החזרות
הזמן שחלף במיליוניות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

מחזירה את הזמן במערכת מונוטונית ביחידות של אלפיות השנייה.

הפונקציה מחזירה את הזמן שחלף באלפיות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה. מובטח שהערך שמוחזר ימשיך לעלות באופן קבוע (כלומר, לא גולש אף פעם) בין אתחולים מחדש של המערכת. בנוסף, מובטח שמקור הזמן הבסיסי יסומן באופן רציף בכל מצבי השינה של המערכת שלא כרוכים בהפעלה מחדש לאחר התעוררות.

למרות שפלטפורמות מסוימות עשויות להחזיר ערך שמודד את זמן האתחול של המערכת, אפליקציות לא צריכות להסתמך על כך. בנוסף, התקופה של GetClock_Monotonic() לא תהיה זהה לזו של פונקציות GetClock... אחרות. לכן, ניתן לבצע חישובים של זמן יחסי רק על ערכים שמוחזרת על ידי אותה פונקציה.

אין ספק שהפונקציה הזו תהיה בטוחה לשרשורים בכל פלטפורמה שכוללת שימוש בשרשור.

פרטים
החזרות
הזמן שחלף באלפיות השנייה מאז תקופה שרירותית שהוגדרה על ידי פלטפורמה.

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 של אלפית שנייה.

השיטה הזו מחזירה את המושג של זמן אמת נוכחי בפלטפורמה המקומית, מבוטאת כערך זמן Unix המותאם לאלפיות השנייה. מובטח שהשעון הבסיסי יתנגן בקצב של שניות שלמות לפחות (ערך של 1,000,000), אבל בפלטפורמות מסוימות עלול לפעול מהר יותר.

אם הפלטפורמה הבסיסית יכולה לעקוב אחר זמן אמת, אך המערכת אינה מסונכרנת כרגע, GetClock_RealTimeMS() יחזיר את השגיאה WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED.

בפלטפורמות שלא מסוגלות לעקוב בזמן אמת, ייתכן שהשיטה GetClock_RealTimeMS() חסרה. כתוצאה מכך, תוצג שגיאת קישור לכל אפליקציה שמפנה אליה. לחלופין, פלטפורמות כאלה יכולות לספק יישום של GetClock_RealTimeMS() שמחזיר תמיד את השגיאה WEAVE_SYSTEM_ERROR_NOT_SUPPORTED.

אין ספק שהפונקציה הזו תהיה בטוחה לשרשורים בכל פלטפורמה שכוללת שימוש בשרשור.

פרטים
פרמטרים
[out] curTime
השעה הנוכחית, מבוטאת כזמן Unix מותאם לאלפיות השנייה.
ערכים מוחזרים
WEAVE_SYSTEM_NO_ERROR
אם השיטה הצליחה.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
אם הפלטפורמה יכולה לעקוב בזמן אמת, אבל היא לא מסונכרנת כרגע.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
אם הפלטפורמה לא יכולה לעקוב אחר נתונים בזמן אמת.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

מגדיר את התפיסה של הפלטפורמה לגבי הזמן האמיתי (האזרחי) הנוכחי.

אפליקציות יכולות לקרוא לפונקציה הזו כדי להגדיר את התפיסה של הפלטפורמה המקומית לגבי זמן אמת נוכחי. השעה הנוכחית החדשה מבוטאת כערך זמן Unix, מותאם למיליוניות השנייה.

לאחר ההגדרה, מובטח ששעון הפלטפורמה יעקוב אחר זמן אמת ברמת פירוט של שניות שלמות לפחות.

פלטפורמות מסוימות עשויות להגביל את האפליקציות או התהליכים שאפשר להגדיר בזמן אמת. אם מבצע הקריאה החוזרת לא מורשה לשנות את הערך בזמן אמת, הפונקציה SetClock_RealTime() תחזיר את השגיאה WEAVE_SYSTEM_ERROR_ACCESS_DENIED.

בפלטפורמות שלא מסוגלות לעקוב אחר זמן אמת או שלא מאפשרות להגדיר זמן אמת, ייתכן שהפונקציה 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
אם לאפליקציית הקריאה אין הרשאה להגדיר את השעה הנוכחית.