nl::Weave::System::Platform::Layer

סיכום

פונקציות

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
זהו הוק לאחר האתחול של שכבה ספציפית לפלטפורמה.
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 System.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
זהו הוק לסגירה מראש של שכבת Weave מערכת ספציפית לפלטפורמה.

פונקציות

DidInit

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

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

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

פרטים
פרמטרים
[in,out] aLayer
הפניה למופע ה-Layer של מערכת Weave System שמאתחל.
[in,out] aContext
נתוני הקשר ספציפיים לפלטפורמה שהועברו לשיטת אתחול השכבה, ::Init.
[in] anError
הסטטוס הכולל שמוחזר דרך השכבה ::Init של מערכת Weave.

DidShutdown

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

זהו הוק לסגירה מראש של שכבת Weave מערכת ספציפית לפלטפורמה.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

פרטים
פרמטרים
[in,out] aLayer
הפניה למכונה של Layer (שכבת-על) במערכת Weave System.
[in,out] aContext
נתוני הקשר ספציפיים לפלטפורמה מועברים לשיטת אתחול השכבה, ::Shutdown.
[in] anError
הסטטוס הכולל שמוחזר באמצעות שכבה של מערכת Weave ::שיטת כיבוי.
החזרות
WEAVE_SYSTEM_NO_ERROR כשהאימות יסתיים בהצלחה. אחרת, תופיע שגיאה ספציפית שמציינת את הסיבה לכשל בהשבתה. החזרת סטטוס 'נכשל' תבטל את הסגירה.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

זהו פתק לשליחת הודעה או אירוע ספציפי לפלטפורמה מסוימת.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

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

פרטים
פרמטרים
[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
אם מצב האובייקט Layer של מערכת Weave מערכת אינו צפוי.
WEAVE_SYSTEM_NO_ERROR
בהצלחה.

DispatchEvents

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

זהו פתק לשליחת הודעה או אירוע ספציפי לפלטפורמה מסוימת.

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

לפרטים על ההתנהגות הצפויה, אפשר לעיין בתיעוד של GetClock_RealTime() .

פרטים
פרמטרים
[out] curTime
השעה הנוכחית, מבוטאת כזמן Unix מותאם לאלפיות השנייה.
ערכים מוחזרים
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
)

זה אירוע ספציפי לפלטפורמה או שרשור בפוסט של הודעה.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

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

פרטים
פרמטרים
[in,out] aLayer
מצביע למופע של השכבה שבה האירוע או ההודעה מתפרסמים.
[in,out] aContext
נתוני הקשר ספציפיים לפלטפורמה שהועברו לשיטת אתחול השכבה, ::Init.
[in,out] aTarget
מצביע אל האובייקט שכבה של מערכת Weave System ששולח את בקשת הפרסום.
[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
השעה הנוכחית החדשה, מבוטאת כזמן Unix מותאם למיליוניות השנייה.
ערכים מוחזרים
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
)

זהו פתק לשליחת הודעה או אירוע ספציפי לפלטפורמה מסוימת.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), 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.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

פרטים
פרמטרים
[in,out] aLayer
הפניה למופע ה-Layer של מערכת Weave System שמאתחל.
[in,out] aContext
נתוני הקשר ספציפיים לפלטפורמה שהועברו לשיטת אתחול השכבה, ::Init.
החזרות
WEAVE_SYSTEM_NO_ERROR כשהתהליך יסתיים בהצלחה; אחרת, תופיע שגיאה ספציפית המציינת את הסיבה לכשל בהפעלה. החזרת סטטוס 'נכשל' תבטל את האתחול.

WillShutdown

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

זהו הוק לסגירה מראש של שכבת Weave מערכת ספציפית לפלטפורמה.

אפשר לבטל את ההגדרה הזו באמצעות הצהרה על הגדרת המעבד (pre-CPU), WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

פרטים
פרמטרים
[in,out] aLayer
מצביע על כיבוי של מופע השכבה של מערכת Weave System.
[in,out] aContext
נתוני הקשר ספציפיים לפלטפורמה מועברים לשיטת אתחול השכבה, ::Shutdown.
החזרות
WEAVE_SYSTEM_NO_ERROR כשהאימות יסתיים בהצלחה. אחרת, תופיע שגיאה ספציפית שמציינת את הסיבה לכשל בהשבתה. החזרת סטטוס 'נכשל' תבטל את הסגירה.