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

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

GetClock_Monotonic(void)
uint64_t
מחזירה זמן מערכת מונוטוני ביחידות של מיקרו-שניות.
GetClock_MonotonicHiRes(void)
uint64_t
מחזירה זמן מערכת מונוטוני (אולי) ברזולוציה גבוהה, ביחידות של מיקרו-שניות.
GetClock_MonotonicMS(void)
uint64_t
מחזירה זמן מערכת מונוטוני ביחידות של אלפיות השנייה.
GetClock_RealTime(uint64_t & curTime)
Error
מחזירה את הזמן האמיתי (civil) בפורמט זמן מיקרו-שנייה של יוניקס.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
מחזירה את הזמן האמיתי (civil) בפורמט זמן יוניקס של אלפית השנייה.
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
)

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

פרטים
פרמטרים
[in] aDelegate
מבנה לא פעיל של LwIP המטפל באירועים של 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
)

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

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

פרטים
פרמטרים
[in] aEvent
אובייקט האירוע הספציפי לפלטפורמה שיש לשלוח לטיפול.
החזרות
WEAVE_SYSTEM_NO_ERRORבהצלחה; אחרת, שגיאה ספציפית שמציינת את הסיבה לכשל באתחול.

DispatchEvents

Error DispatchEvents(
  void
)

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

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

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

HandleSelectResult

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

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

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

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

Init

Error Init(
  void *aContext
)

שכבה

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

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

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

פרטים
פרמטרים
[in,out] aTarget
מצביע לאובייקט Layer של מערכת 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.

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

הערה: אם מתבצעת קריאה אל WakeSelect() מתוך HandleSelectResult(), אפשר לדלג על הכתיבה אל צינור עיבוד הנתונים כי ה-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
)

מחזירה את הזמן האמיתי (civil) בפורמט זמן מיקרו-שנייה של יוניקס.

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

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

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

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

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

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

פרטים
פרמטרים
[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
)

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

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