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
|
Contact *
通訊情境
|
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
|
列舉 這個時間同步用戶端的目前狀態 |
CommState
|
列舉 特定聯絡人的通訊狀態。 |
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
|
typedefvoid(*
回呼才會在計算回應時間的修正時間之前發生。 |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
回呼指出我們剛剛收到時間同步要求。 |
ResponseStatus
|
列舉 針對特定聯絡人的儲存回覆狀態。 |
ServerState{
|
列舉 這個時間同步伺服器的目前狀態 |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
當系統判定同步處理失敗 (包括自動同步) 時,就會發生回呼。 |
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
|
typedefbool(*
在系統判定同步處理成功 (包括自動同步) 後,才會在套用結果之前進行回呼。 |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
回呼指出我們剛收到時間變更通知。 |
公開屬性 |
|
---|---|
FilterTimeCorrectionContributor
|
|
OnSyncFailed
|
|
OnSyncRequestReceived
|
如未設定,預設實作一律會傳回 true
|
OnSyncSucceeded
|
如果未設定,則預設行為會採用所有結果,但微小的伺服器修正除外
|
OnTimeChangeNotificationReceived
|
|
mEncryptionType
|
uint8_t
本機通訊的加密方法
|
mKeyId
|
uint16_t
用於本機通訊的金鑰 ID
|
受保護的屬性 |
|
---|---|
mApp
|
void *
指向較高圖層資料
|
mClientState
|
|
mConnectionToService
|
用來與服務通訊的 TCP 連線。
|
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
|
在探索過程中取得的聯絡資訊。
|
mIsAlwaysFresh
|
bool
|
mIsInCallback
|
bool
如果在呼叫更高層的情況下傳回 true
|
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
此引擎設定用來儲存聯絡人數量上限的簡易 getter
|
GetClientState(void) const
|
用戶端狀態的簡易 getter
|
GetNextLikelihood(void) const
|
int8_t
來提取持續性的可能性
|
GetServerState(void) const
|
伺服器狀態的簡易 getter
|
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 連線和相關加密與金鑰 ID 之間的同步處理。
|
受保護的函式 |
|
---|---|
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)
|
觸發對應用程式層的回呼。
|
ClearState(void)
|
void
|
DestroyCommContext(void)
|
bool
關閉 Weave ExchangeContext
|
EndLocalSyncAndTryCalculateTimeFix(void)
|
void
|
EndServiceSyncAndTryCalculateTimeFix(void)
|
void
|
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
|
Contact *
傳回時段以儲存聯絡資訊
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
會取得下一個有效且閒置的聯絡人通訊
|
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
針對特定聯絡人發生通訊錯誤,如需縮短自動探索的期間
|
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,用於單點傳播通訊
|
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
|
void
儲存剛傳送時間變更通知的節點聯絡資訊
|
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
|
void
處理來自多點傳播要求的回應
|
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
|
void
處理來自單點傳播要求的回應
|
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
為「用戶端」角色初始化。
|
_InitServer(const bool aIsAlwaysFresh)
|
為伺服器角色初始化。
|
_ShutdownClient(void)
|
回呼中無法使用用戶端。
|
_ShutdownCoordinator(void)
|
回呼中無法使用停止協調器。
|
_ShutdownServer(void)
|
回呼中沒有該伺服器。
|
受保護的靜態函式 |
|
---|---|
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
收到同步要求時,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
Weave Timer 發出的回呼,當系統在啟動受到阻斷後,才傳送不準確的回呼
|
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
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
這個時間同步用戶端的目前狀態
ContributorFilter
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
回呼才會在計算回應時間的修正時間之前發生。
應用程式層可能會覆寫 aContact[i].mResponseStatus 至 kResponseStatus_Invalid,以便在計算過程中忽略回應
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
回呼指出我們剛剛收到時間同步要求。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回 |
false,引擎應忽略這項要求
|
ServerState
ServerState
這個時間同步伺服器的目前狀態
屬性 | |
---|---|
kServerState_Idle
|
伺服器已準備好以正常設定回應要求 |
kServerState_UnreliableAfterBoot
|
伺服器透過某種其他方式同步處理其系統時間的時間,只有在呼叫 Init 時,aIsAlwaysFresh 為 true 時才有意義 |
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
當系統判定同步處理失敗 (包括自動同步) 時,就會發生回呼。
請注意,如果呼叫取消同步處理來停止同步作業,就不會發生回呼
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
在系統判定同步處理成功 (包括自動同步) 後,才會在套用結果之前進行回呼。
請注意,成功不代表我們取得了有效的結果。如果沒有收到回應,aNumContributor 可設為 0。應用程式層可以將 aContact[i].mResponseStatus 覆寫為 kResponseStatus_Invalid,以便在計算過程中忽略回應
詳細資料 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回 |
如果此位移應用於調整系統時間,則為 true。如果 aNumContributor 為 0,系統會忽略傳回值。
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
回呼指出我們剛收到時間變更通知。
如果啟用了自動同步模式,系統將在這次回呼後不久自動進行時間同步作業。否則,應用程式層可以選擇呼叫 Sync 一系列函式,以便直接啟動未受一般回呼規則限制的同步處理作業。不過請注意,這個特殊回呼仍位於 Weave 交換層的回呼堆疊之上。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
公開屬性
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
本機通訊的加密方法
mKeyId
uint16_t mKeyId
用於本機通訊的金鑰 ID
受保護的屬性
mApp
void * mApp
指向較高圖層資料
mClientState
ClientState mClientState
mIsAlwaysFresh
bool mIsAlwaysFresh
mIsInCallback
bool mIsInCallback
如果在呼叫更高層的情況下傳回 true
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 連線將不會進一步接觸。如果已進入閒置狀態,則不會執行任何作業。回呼中無法使用。
詳細資料 | |
---|---|
傳回 |
成功時 WEAVE_NO_ERROR
|
DisableAutoSync
void DisableAutoSync( void )
停用自動同步功能。
只能處於閒置狀態。回呼中無法使用。
EnableAutoSync
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
啟用自動同步功能。
只能處於閒置狀態。探索會立即發生回呼中無法使用。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
成功時 WEAVE_NO_ERROR
|
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
此引擎設定用來儲存聯絡人數量上限的簡易 getter
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
來提取持續性的可能性
只有在同步作業完成後 (於 OnSyncSucceeded 和 OnSyncFailed 的回呼中),結果才有效。否則會是暫時性的,因此可能會是目前的可能性,而不是下一個可用機率。
詳細資料 | |
---|---|
傳回 |
回應在下一個要求中使用的可能性
|
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t 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 )
初始化這個協調器。
詳細資料 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回 |
成功時 WEAVE_NO_ERROR
|
InitServer
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
如果目標為「時間同步伺服器」,則必須在建立物件後,呼叫「伺服器」角色的初始化為第一個函式。
不適用於回呼
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
成功時 WEAVE_NO_ERROR
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
由較高層呼叫多點傳播時間變更通知。
回呼中無法使用。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
由較高層呼叫,表示我們剛剛與任何伺服器或一些可靠的方式 (例如 NTP) 完成一連串的時間同步。
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
由較高層呼叫,表示我們剛與其他當地協調人員同步完成一次時間。
詳細資料 | |||
---|---|---|---|
參數 |
|
關閉
WEAVE_ERROR Shutdown( void )
服務。
必須先呼叫此函式才能正確地取回分配的資源,之後才能對任何 init 函式發出另一個呼叫。回呼中無法使用。
詳細資料 | |
---|---|
傳回 |
成功時 WEAVE_NO_ERROR
|
同步
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
同步處理。
如果沒有有效的聯絡人,同步處理作業可能會失敗。將 aForceDiscoverAgain 設為 true 以立即強制探索。只能處於閒置狀態。回呼中無法使用。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
成功時 WEAVE_NO_ERROR
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
與指定的聯絡人清單進行同步處理
現有的聯絡人清單將會清除。只能處於閒置狀態。回呼中無法使用。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
成功時 WEAVE_NO_ERROR
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
與指定的 TCP 連線和相關加密與金鑰 ID 之間的同步處理。
同步完成後,呼叫端必須取得 TCP 連線的擁有權。系統不會覆寫 TCP 連線的回呼,因為系統會建立新的 Weave Exchange,並在該結構定義上方設定回呼,且僅供閒置狀態使用。回呼中無法使用。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
成功時 WEAVE_NO_ERROR
|
TimeSyncNode
TimeSyncNode( void )
受保護的函式
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 )
觸發對應用程式層的回呼。
將 aIs 成功 設為 false 以推斷錯誤回呼
ClearState
void ClearState( void )
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
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 )
使服務聯絡人失效
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,用於單點傳播通訊
StoreNotifyingContact
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
儲存剛傳送時間變更通知的節點聯絡資訊
UpdateMulticastSyncResponse
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
處理來自多點傳播要求的回應
UpdateUnicastSyncResponse
void UpdateUnicastSyncResponse( const TimeSyncResponse & aResponse )
處理來自單點傳播要求的回應
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
為「用戶端」角色初始化。
適合 Init 的公開函式系列在內部使用。必須在傳回前設定 mClientState。不適用於回呼
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
成功時 WEAVE_NO_ERROR
|
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
為伺服器角色初始化。
適合 Init 的公開函式系列在內部使用。必須在傳回前設定 mClientState。不適用於回呼
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
成功時 WEAVE_NO_ERROR
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
回呼中無法使用停止協調器。
詳細資料 | |
---|---|
傳回 |
成功時 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 )
收到同步要求時,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 )
Weave Timer 發出的回呼,當系統在啟動受到阻斷後,才傳送不準確的回呼
IsOperationalState
bool IsOperationalState( ClientState aState )
判斷指定狀態是否正常運作。
判斷 ClientState 是否表示運作狀態的便利方法,亦即用戶端已完成初始化,目前未處於關閉狀態。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果狀態在初始化完成後到關閉前的狀態為 true,則傳回 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 )