nl::Weave::Profiles::Time::TimeSyncNode

סיכום

ירושה

עובר בירושה מ: nl::Weave::Profiles::Time::_TimeSyncNodeBase

בנייה

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
במצב של תכונת הסנכרון האוטומטי.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
להקשר של התקשורת.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
פונקציות המעבר של המצבים האלה הן פנימיות ולא יכולות להחזיר קוד שגיאה, כי המצב הקודם לא היה מוביל לטיפול בהן.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

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

ClientState טיפוסים בני מנייה (enum)
המצב הנוכחי של לקוח סנכרון הזמן הזה
CommState טיפוסים בני מנייה (enum)
סטטוס התקשורת של איש קשר מסוים.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
הקריאה החוזרת (callback) מתרחשת ממש לפני שאנחנו מחשבים את תיקון הזמן מתשובות.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
כדי לציין שקיבלנו בקשה לסנכרון זמן.
ResponseStatus טיפוסים בני מנייה (enum)
של תשובה שנשמרה לאיש קשר מסוים.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
טיפוסים בני מנייה (enum)
המצב הנוכחי של שרת סנכרון הזמן הזה
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
הקריאה החוזרת (callback) מתרחשת כאשר הסנכרון נחשב כנכשל, כולל סנכרון אוטומטי.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
קריאה חוזרת (callback) מתרחשת אחרי שהסנכרון נחשב למוצלח, כולל סנכרון אוטומטי, אבל לפני החלת התוצאה.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
כדי לציין שקיבלנו התראה על שינוי זמן.

מאפיינים ציבוריים

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
אם המדיניות לא מוגדרת, הטמעת ברירת המחדל תמיד מחזירה את הערך True
OnSyncSucceeded
אם המדיניות לא מוגדרת, התנהגות ברירת המחדל מקבלת את כל התוצאות, מלבד תיקונים קטנים מאוד בשרת
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
שיטת הצפנה לתקשורת מקומית
mKeyId
uint16_t
מזהה מפתח שמשמש לתקשורת מקומית

מאפיינים מוגנים

mApp
void *
מצביע על נתוני שכבה גבוהה יותר
mClientState
mConnectionToService
חיבור TCP שמשמש לצורך שיחה עם השירות.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
פרטים ליצירת קשר שנלמדו במהלך הגילוי.
mIsAlwaysFresh
bool
mIsInCallback
bool
אם אנחנו בקריאה חוזרת לשכבה גבוהה יותר
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
התפקיד בפועל של הצומת הזה.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
לתשומת ליבך, זה צריך להיות בזמן האתחול, כי אנחנו צריכים תגמול על זמן השינה
mTimestampLastLocalSync_usec
timesync_t
לתשומת ליבך, זה צריך להיות בזמן האתחול, כי אנחנו צריכים תגמול על זמן השינה

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

Abort(void)
לאלץ את המנוע לחזור למצב לא פעיל, ולבטל את הפעולה שהוא עושה.
DisableAutoSync(void)
void
השבתת הסנכרון האוטומטי.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
הפעלת הסנכרון האוטומטי.
GetCapacityOfContactList(void) const
int
מקש geter פשוט למספר המקסימלי של אנשי קשר שהמנוע הזה מוגדר לאחסן
GetClientState(void) const
מקש getter פשוט למצב הלקוח
GetNextLikelihood(void) const
int8_t
לחלץ את הסבירות לקבוע.
GetServerState(void) const
מקש geter פשוט למצב השרת
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
צריך לאתחל את הלקוח הזה.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
לאתחל את המתאם הזה.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
אתחול לתפקיד שרת צריך להיקרא כפונקציה הראשונה לאחר בניית האובייקט, אם הכוונה היא להיות שרת לסנכרון זמן.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
מופעל על ידי שכבה גבוהה יותר להתראה על שינוי זמן בריבוי שידורים.
RegisterCorrectionFromServerOrNtp(void)
void
נשלחה קריאה על ידי שכבה גבוהה יותר כדי לציין שסיימנו עכשיו סבב סנכרון עם שרת כלשהו או דרך אמצעים אמינים כמו NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
נשלחה קריאה על ידי שכבה גבוהה יותר כדי לציין שסיימנו עכשיו את סבב הסנכרון עם מתאמים מקומיים אחרים.
Shutdown(void)
לעצור את השירות, ללא קשר לתפקיד שעליו הוא ממלא.
Sync(const bool aForceDiscoverAgain)
לסנכרן באמצעות אנשי קשר קיימים.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
לבצע סנכרון באמצעות רשימת אנשי הקשר הנתונה.
SyncWithService(WeaveConnection *const aConnection)
לסנכרן באמצעות חיבור ה-TCP הנתון וההצפנה ומזהה המפתח המשויכים.

פונקציות מוגנות

AbortOnError(const WEAVE_ERROR aCode)
void
ביטול פנימי אם ה-aCode אינו WEAVE_NO_ERROR
AutoSyncNow(void)
void
פונקציה פנימית כדי להתחיל סשן של סנכרון אוטומטי
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
יובילו לקריאה חוזרת (callback) לשכבת האפליקציה.
ClearState(void)
void
DestroyCommContext(void)
bool
סוגרים את ExchangeContext של Weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
להחזיר משבצת כדי לשמור פרטים ליצירת קשר
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
איש הקשר הבא, תקין ולא פעיל, שאפשר לדבר איתו
GetNumNotYetCompletedContacts(void)
int16_t
מקבלים את מספר אנשי הקשר התקינים, אבל עוד לא דיברנו איתם.
GetNumReliableResponses(void)
int16_t
מקבלים את מספר תגובות שנאספו עד עכשיו.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
לבטל את התוקף של כל אנשי הקשר המקומיים
InvalidateServiceContact(void)
void
ביטול התוקף של איש הקשר לשירות
RegisterCommError(Contact *const aContact)
void
לתעד שגיאת תקשורת עם איש קשר מסוים ולקצר את תקופת הגילוי האוטומטי במקרה הצורך, כך שאיש הקשר יכול להיות NULL כדי לציין שאין לנו עם מי לדבר, ולקצר את פרק הזמן של הגילוי האוטומטי
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
שליחת בקשה לסנכרון unicast לאיש קשר.
SetAllCompletedContactsToIdle(void)
int16_t
לאפס שוב את כל אנשי הקשר שהושלמו למצב לא פעיל, אבל לא לגעת בתגובה.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
להגדיר את כל אנשי הקשר המקומיים החוקיים למצב לא פעיל ולנקות את התגובה.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
יצירת Weave Exchange חדש לתקשורת unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
אחסון הפרטים ליצירת קשר של צומת ששלח לנו התראה על שינוי זמן
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
לעבד תשובה שחוזרת מבקשה של Multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
לעבד תגובה שחוזרת מבקשת unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
להפעיל את התפקיד 'לקוח'.
_InitServer(const bool aIsAlwaysFresh)
לבצע אתחול לתפקיד 'שרת'.
_ShutdownClient(void)
הפסקת הלקוח לא זמין בקריאות חוזרות (callback).
_ShutdownCoordinator(void)
שהמתאם לא זמין בקריאות חוזרות (callback).
_ShutdownServer(void)
השרת לא זמין בקריאות חוזרות (callback).

פונקציות סטטיות מוגנות

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
קריאה חוזרת (callback) מ-Weave Exchange כאשר מתקבלת בקשת סנכרון זמן
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
קריאה חוזרת (callback) מטיימר של Weave כשעברנו את השלב הלא מהימן לאחר מחסום האתחול
IsOperationalState(ClientState aState)
bool
החליטו אם מצב נתון הוא פעיל.
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

במצב של תכונת הסנכרון האוטומטי.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

להקשר של התקשורת.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

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

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

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  void
)

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

ClientState

 ClientState

המצב הנוכחי של לקוח סנכרון הזמן הזה

CommState

 CommState

סטטוס התקשורת של איש קשר מסוים.

התמונה הזו גלויה לכולם כי יצירת הקשר גלויה לכולם

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

הקריאה החוזרת (callback) מתרחשת ממש לפני שאנחנו מחשבים את תיקון הזמן מתשובות.

שכבת היישום יכולה להחליף את aContact[i].mResponseStatus ב-kResponseStatus_ Invalid, כך שהתשובה לא נלקחת בחשבון בחישוב

פרטים
פרמטרים
[in] aApp
מצביע לנתוני שכבת אפליקציה שמוגדרים ב-Init.
[in] aContact
מערך אנשי קשר וסטטוס תגובה
[in] aSize
מספר הרשומות במערך aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

כדי לציין שקיבלנו בקשה לסנכרון זמן.

פרטים
פרמטרים
[in] aApp
מצביע לנתוני שכבת אפליקציה שמוגדרים ב-Init.
[in] aMsgInfo
WeaveMessageInfo שמכילה מידע על בקשת הסנכרון של הזמן שהתקבלה, כולל מידע על השולח.
[in] aLikelyhood
הסבירות לתגובה בהתאם לבקשת היוצר
[in] aIsTimeCoordinator
true אם הצומת המקורי הוא מתאם סנכרון זמן
החזרות
FALSE והמנוע יתעלם מהבקשה הזו

ResponseStatus

 ResponseStatus

של תשובה שנשמרה לאיש קשר מסוים.

התמונה הזו גלויה לכולם כי יצירת הקשר גלויה לכולם

ServerState

 ServerState

המצב הנוכחי של שרת סנכרון הזמן הזה

מאפיינים
kServerState_Idle

השרת מוכן להגיב לבקשות עם הגדרות רגילות

kServerState_UnreliableAfterBoot

הזמן השמור לשרת לסנכרן את זמן המערכת שלו באמצעים אחרים, שיש לו משמעות רק אם הערך של aIsAlwaysFresh נכון כשמתבצעת קריאה ל-Init.

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

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

חשוב לזכור שקריאה חוזרת (callback) לא מתרחשת אם מתבצעת קריאה ל-Abort כדי להפסיק את הסנכרון

פרטים
פרמטרים
[in] aApp
מצביע לנתוני שכבת אפליקציה שמוגדרים ב-Init.
[in] aErrorCode
הסיבה לכשל

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

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

חשוב לדעת: הצלחה לא אומרת שקיבלנו תוצאות רלוונטיות. אם לא תתקבל תגובה, aNumContributor תוגדר כ-0. שכבת האפליקציה יכולה להחליף את aContact[i].mResponseStatus ב-kResponseStatus_ Invalid, כך שהתשובה לא נלקחת בחשבון בחישוב

פרטים
פרמטרים
[in] aApp
מצביע לנתוני שכבת אפליקציה שמוגדרים ב-Init.
[in] aOffsetUsec
כמות התיקון ב-Usec
[in] aIsReliable
הוא התיקון שנחשב לאמין לפי הלוגיקה המובנית
[in] aIsServer
האם התיקון מגיע מהשרתים?
[in] aNumContributor
מספר הצמתים שתרמו לתיקון הזה. המשמעות של 0 היא שלא נמצאו תוצאות מפעולת הסנכרון.
החזרות
true אם ההיסט הזה ישמש להתאמת זמן המערכת. אם aNumContributor הוא 0, המערכת תתעלם מהערך המוחזר.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

כדי לציין שקיבלנו התראה על שינוי זמן.

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

פרטים
פרמטרים
[in] aApp
מצביע לנתוני שכבת אפליקציה שמוגדרים ב-Init.
[in] aNodeId
בקשה למזהה הצומת
[in] aNodeAddr
שליחת בקשה לכתובת צומת

מאפיינים ציבוריים

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

אם המדיניות לא מוגדרת, הטמעת ברירת המחדל תמיד מחזירה את הערך True

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

אם המדיניות לא מוגדרת, התנהגות ברירת המחדל מקבלת את כל התוצאות, מלבד תיקונים קטנים מאוד בשרת

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

שיטת הצפנה לתקשורת מקומית

mKeyId

uint16_t mKeyId

מזהה מפתח שמשמש לתקשורת מקומית

מאפיינים מוגנים

mApp

void * mApp

מצביע על נתוני שכבה גבוהה יותר

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

חיבור TCP שמשמש לצורך שיחה עם השירות.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

פרטים ליצירת קשר שנלמדו במהלך הגילוי.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

אם אנחנו בקריאה חוזרת לשכבה גבוהה יותר

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

התפקיד בפועל של הצומת הזה.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

לתשומת ליבך, זה צריך להיות בזמן האתחול, כי אנחנו צריכים תגמול על זמן השינה

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

לתשומת ליבך, זה צריך להיות בזמן האתחול, כי אנחנו צריכים תגמול על זמן השינה

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

ביטול

WEAVE_ERROR Abort(
  void
)

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

הערה לא תיקרא הצלחה או כשל בסנכרון. כל הבורסה של Weave ייסגרו. לא תהיה השפעה נוספת על חיבורי TCP. אין פעולה אם אנחנו כבר במצב לא פעיל. לא זמין בקריאות חוזרות (callback).

פרטים
החזרות
WEAVE_NO_ERROR בהצלחה

DisableAutoSync

void DisableAutoSync(
  void
)

השבתת הסנכרון האוטומטי.

זמינה רק במצב לא פעיל. לא זמין בקריאות חוזרות (callback).

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

הפעלת הסנכרון האוטומטי.

זמינה רק במצב לא פעיל. החשיפה מתבצעת באופן מיידי. לא זמין בקריאות חוזרות (callback).

פרטים
פרמטרים
[in] aSyncPeriod_msec
מספר אלפיות השנייה בין סנכרון
[in] aNominalDiscoveryPeriod_msec
מספר המילי-שניות בין הגילוי, אם לא זוהתה שגיאת תקשורת
[in] aShortestDiscoveryPeriod_msec
הזמן הקצר ביותר בין הגילוי באלפיות השנייה, אם זוהתה שגיאת תקשורת
החזרות
WEAVE_NO_ERROR בהצלחה

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

מקש geter פשוט למספר המקסימלי של אנשי קשר שהמנוע הזה מוגדר לאחסן

GetClientState

ClientState GetClientState(
  void
) const 

מקש getter פשוט למצב הלקוח

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

לחלץ את הסבירות לקבוע.

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

פרטים
החזרות
הסבירות שייעשה שימוש בתגובה בבקשה הבאה

GetServerState

ServerState GetServerState(
  void
) const 

מקש geter פשוט למצב השרת

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

צריך לאתחל את הלקוח הזה.

לא זמין בקריאות חוזרות (callbacks)

פרטים
פרמטרים
[in] aApp
מצביע אל נתוני שכבה גבוהה יותר, המשמש בקריאות חוזרות לשכבה גבוהה יותר.
[in] aExchangeMgr
מצביע לאובייקט של Weave Exchange Manager ברמת המערכת
[in] aRole
יכול להיות kTimeSyncRole_Client או kTimeSyncRole_Coordinator
[in] aEncryptionType
סוג ההצפנה שישמש לבקשות ולתשובות
[in] aKeyId
מזהה המפתח שישמש לבקשות ולתשובות
[in] aInitialLikelyhood
בסבירות הראשונית שיוביל לשלב הגילוי
החזרות
WEAVE_NO_ERROR בהצלחה

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

לאתחל את המתאם הזה.

פרטים
פרמטרים
[in] aExchangeMgr
מצביע לאובייקט של Weave Exchange Manager ברמת המערכת
[in] aEncryptionType
סוג ההצפנה שישמש לבקשות ולתשובות
[in] aKeyId
מזהה המפתח שישמש לבקשות ולתשובות
[in] aSyncPeriod_msec
מספר אלפיות השנייה בין סנכרון
[in] aNominalDiscoveryPeriod_msec
משך הזמן הקצר ביותר בין הגילוי באלפיות השנייה אם לא זוהתה שגיאת תקשורת
[in] aShortestDiscoveryPeriod_msec
המספר הקטן ביותר של מילי-שניות בין הגילוי, אם זוהתה שגיאת תקשורת
החזרות
WEAVE_NO_ERROR בהצלחה

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

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

לא זמין בקריאות חוזרות (callbacks)

פרטים
פרמטרים
[in] aApp
מצביע אל נתוני שכבה גבוהה יותר, המשמש בקריאות חוזרות לשכבה גבוהה יותר.
[in] aExchangeMgr
מצביע לאובייקט של Weave Exchange Manager ברמת המערכת
[in] aIsAlwaysFresh
יכול להיות מוגדר כ-True כדי לציין שהשרת תמיד מסונכרן, מלבד הזמן הראשוני הלא מהימן. תוגדר כ-FALSE עבור 'מתאם'.
החזרות
WEAVE_NO_ERROR בהצלחה

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

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

לא זמין בקריאות חוזרות (callback).

פרטים
פרמטרים
[in] aEncryptionType
סוג ההצפנה שישמש להודעה הזו
[in] aKeyId
מזהה מפתח שישמש להודעה הזו

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

נשלחה קריאה על ידי שכבה גבוהה יותר כדי לציין שסיימנו עכשיו סבב סנכרון עם שרת כלשהו או דרך אמצעים אמינים כמו NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

נשלחה קריאה על ידי שכבה גבוהה יותר כדי לציין שסיימנו עכשיו את סבב הסנכרון עם מתאמים מקומיים אחרים.

פרטים
פרמטרים
[in] aNumContributor
מספר המתאמים שתרמו לסנכרון הזמן הזה

כיבוי

WEAVE_ERROR Shutdown(
  void
)

להפסיק את השירות, ללא קשר לתפקיד שעליו הוא ממלא.

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

פרטים
החזרות
WEAVE_NO_ERROR בהצלחה

סנכרון

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

לסנכרן באמצעות אנשי קשר קיימים.

אם אין אנשי קשר חוקיים, פעולת הסנכרון תיכשל. להגדיר את aForceDiscoverAgain כ-TRUE כדי לאלץ גילוי באופן מיידי. זמינה רק במצב לא פעיל. לא זמין בקריאות חוזרות (callback).

פרטים
פרמטרים
[in] aForceDiscoverAgain
true אם כל אנשי הקשר הקיימים יושלמו ופעולת הגילוי תתבצע
החזרות
WEAVE_NO_ERROR בהצלחה

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

לבצע סנכרון באמצעות רשימת אנשי הקשר הנתונה.

רשימת אנשי הקשר הקיימת תרוקן. זמינה רק במצב לא פעיל. לא זמין בקריאות חוזרות (callback).

פרטים
פרמטרים
[in] aNumNode
מספר אנשי הקשר במערך aNode
[in] aNodes
מערך של רשומות אנשי קשר
החזרות
WEAVE_NO_ERROR בהצלחה

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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

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

פרטים
פרמטרים
[in] aConnection
מצביע לחיבור ל-Weave
החזרות
WEAVE_NO_ERROR בהצלחה

TimeSyncNode

 TimeSyncNode(
  void
)

פונקציות מוגנות

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

ביטול פנימי אם ה-aCode אינו WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

פונקציה פנימית כדי להתחיל סשן של סנכרון אוטומטי

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

יובילו לקריאה חוזרת (callback) לשכבת האפליקציה.

להגדיר את aIsDone ל-false כדי לגרום לקריאה חוזרת של השגיאה

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

סוגרים את ExchangeContext של Weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

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

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

איש הקשר הבא, תקין ולא פעיל, שאפשר לדבר איתו

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

מקבלים את מספר אנשי הקשר התקינים, אבל עוד לא דיברנו איתם.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

מקבלים את מספר תגובות שנאספו עד עכשיו.

כדי לבדוק אם יש לנו מספיק תשובות

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

לבטל את התוקף של כל אנשי הקשר המקומיים

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

ביטול התוקף של איש הקשר לשירות

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

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

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

שליחת בקשה לסנכרון unicast לאיש קשר.

*rIsMessageSent יוגדר כדי לציין אם ההודעה נשלחה. לא מוחזרות שגיאות תקשורת, כגון 'כתובת שלא ניתן להגיע אליה', לכן המתקשר יבדוק גם את קוד ההחזרה וגם את *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

לאפס שוב את כל אנשי הקשר שהושלמו למצב לא פעיל, אבל לא לגעת בתגובה.

תנועה כזו נקראת בין שני סבבי תקשורת לאותו צומת

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

להגדיר את כל אנשי הקשר המקומיים החוקיים למצב לא פעיל ולנקות את התגובה.

תתבצע קריאה לפני שנתחיל ליצור איתם קשר,

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

יצירת Weave Exchange חדש לתקשורת unicast

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

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

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

לעבד תשובה שחוזרת מבקשה של Multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

לעבד תגובה שחוזרת מבקשת unicast

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

להפעיל את התפקיד 'לקוח'.

מיועד לשימוש פנימי על ידי משפחת Init של תפקידים ציבוריים. יש להגדיר את mClientState לפני החזרה. לא זמין בקריאות חוזרות (callbacks)

פרטים
פרמטרים
[in] aEncryptionType
סוג ההצפנה שישמש לבקשות ולתשובות
[in] aKeyId
מזהה המפתח שישמש לבקשות ולתשובות
[in] aInitialLikelyhood
בסבירות הראשונית שיוביל לשלב הגילוי
החזרות
WEAVE_NO_ERROR בהצלחה

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

לבצע אתחול לתפקיד 'שרת'.

מיועד לשימוש פנימי על ידי משפחת Init של תפקידים ציבוריים. יש להגדיר את mClientState לפני החזרה. לא זמין בקריאות חוזרות (callbacks)

פרטים
פרמטרים
[in] aIsAlwaysFresh
יכול להיות מוגדר כ-True כדי לציין שהשרת תמיד מסונכרן, מלבד הזמן הראשוני הלא מהימן. תוגדר כ-FALSE עבור 'מתאם'.
החזרות
WEAVE_NO_ERROR בהצלחה

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

הפסקת הלקוח לא זמין בקריאות חוזרות (callback).

פרטים
החזרות
WEAVE_NO_ERROR בהצלחה

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

שהמתאם לא זמין בקריאות חוזרות (callback).

פרטים
החזרות
WEAVE_NO_ERROR בהצלחה

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

השרת לא זמין בקריאות חוזרות (callback).

פרטים
החזרות
WEAVE_NO_ERROR בהצלחה

פונקציות סטטיות מוגנות

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

קריאה חוזרת (callback) מ-Weave Exchange כאשר מתקבלת בקשת סנכרון זמן

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

קריאה חוזרת (callback) מטיימר של Weave כשעברנו את השלב הלא מהימן לאחר מחסום האתחול

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

החליטו אם מצב נתון הוא פעיל.

שיטת נוחות שמאפשרת לקבוע אם ClientState מציין מצב תפעולי, כלומר הלקוח השלים את האתחול ולא נמצא בתהליך השבתה.

פרטים
פרמטרים
[in] aState
צריך לבדוק את המצב
החזרות
True אם המצב נופל אחרי סיום האתחול ולפני התחלת הכיבוי, אחרת הערך false.

_OnSyncSucceeded

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)