nl:: Weave:: Profiles:: Time:: TimeSyncNode
Summary
Inheritance
Inherits from: nl::Weave::Profiles::Time::_TimeSyncNodeBase
Constructors and Destructors |
|
---|---|
TimeSyncNode(void)
|
mBootTimeForNextAutoDiscovery_usec
|
timesync_t
|
mIsAutoSyncEnabled
|
bool
states used for auto sync feature.
|
mIsUrgentDiscoveryPending
|
bool
|
mNominalDiscoveryPeriod_msec
|
int32_t
|
mShortestDiscoveryPeriod_msec
|
int32_t
|
mSyncPeriod_msec
|
int32_t
|
mActiveContact
|
Contact *
communication context.
|
mExchangeContext
|
|
mUnadjTimestampLastSent_usec
|
timesync_t
|
EnterState_Discover(void)
|
void
these state transition functions are internal and cannot return error code as the previous state would have no way to handle them.
|
EnterState_ServiceSync_1(void)
|
void
|
EnterState_ServiceSync_2(void)
|
void
|
EnterState_Sync_1(void)
|
void
|
EnterState_Sync_2(void)
|
void
|
Public types |
|
---|---|
ClientState
|
enum current state of this Time Sync Client |
CommState
|
enum status of communication to a certain contact. |
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
|
typedefvoid(*
callback happens right before we calculate the time correction from responses. |
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
|
typedefbool(*
callback to indicate we just received a time sync request. |
ResponseStatus
|
enum status of stored response to a certain contact. |
ServerState{
|
enum current state of this Time Sync Server |
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
|
typedefvoid(*
callback happens when sync is considered failed, including auto sync. |
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
|
typedefbool(*
callback happens after sync is considered successful, including auto sync, but before the result is applied. |
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
|
typedefvoid(*
callback to indicate we just received a Time Change Notification. |
Public attributes |
|
---|---|
FilterTimeCorrectionContributor
|
|
OnSyncFailed
|
|
OnSyncRequestReceived
|
if not set, the default implementation always returns true
|
OnSyncSucceeded
|
if not set, the default behavior is taking all results, except for very small server corrections
|
OnTimeChangeNotificationReceived
|
|
mEncryptionType
|
uint8_t
encryption method for local communication
|
mKeyId
|
uint16_t
key id used for local communication
|
Protected attributes |
|
---|---|
mApp
|
void *
pointer to higher layer data
|
mClientState
|
|
mConnectionToService
|
TCP connection used to talk to the service.
|
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
|
Contact information learned throughout discovery.
|
mIsAlwaysFresh
|
bool
|
mIsInCallback
|
bool
true if we're in a callback to higher layer
|
mLastLikelihoodSent
|
int8_t
|
mNumContributorInLastLocalSync
|
uint8_t
|
mRole
|
TimeSyncRole
Actual role of this node.
|
mServerState
|
|
mServiceContact
|
|
mTimestampLastCorrectionFromServerOrNtp_usec
|
timesync_t
note it has to be boot time as we need compensation for sleep time
|
mTimestampLastLocalSync_usec
|
timesync_t
note it has to be boot time as we need compensation for sleep time
|
Public functions |
|
---|---|
Abort(void)
|
force the engine to go back to idle state, aborting anything it is doing.
|
DisableAutoSync(void)
|
void
disable auto sync.
|
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
|
enable auto sync.
|
GetCapacityOfContactList(void) const
|
int
simple getter for the maximum number of contacts this engine is configured to store
|
GetClientState(void) const
|
simple getter for client state
|
GetNextLikelihood(void) const
|
int8_t
extract the likelihood for persistent.
|
GetServerState(void) const
|
simple getter for the server state
|
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
initialize this client.
|
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)
|
initialize this coordinator.
|
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
|
initialize for the Server role must be called as the first function after object construction if the intention is to be a Time Sync Server.
|
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
|
void
Called by higher layer to multicast time change notification.
|
RegisterCorrectionFromServerOrNtp(void)
|
void
Called by higher layer to indicate that we just finished a round of time sync with either any Server or through some reliable means like NTP.
|
RegisterLocalSyncOperation(const uint8_t aNumContributor)
|
void
Called by higher layer to indicate that we just finished a round of time sync with other local Coordinators.
|
Shutdown(void)
|
stop the service, no matter which role it is playing.
|
Sync(const bool aForceDiscoverAgain)
|
sync using existing contacts.
|
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
|
sync using the given list of contacts.
|
SyncWithService(WeaveConnection *const aConnection)
|
sync using the given TCP connection and associated encryption and key id.
|
Protected functions |
|
---|---|
AbortOnError(const WEAVE_ERROR aCode)
|
void
internal abort if aCode is not WEAVE_NO_ERROR
|
AutoSyncNow(void)
|
void
internal function to kick off an auto sync session
|
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)
|
induce callback to the application layer.
|
ClearState(void)
|
void
|
DestroyCommContext(void)
|
bool
close the Weave ExchangeContext
|
EndLocalSyncAndTryCalculateTimeFix(void)
|
void
|
EndServiceSyncAndTryCalculateTimeFix(void)
|
void
|
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
|
Contact *
return a slot to store contact information
|
GetClientStateName(void) const
|
const char *const
|
GetNextIdleContact(void)
|
Contact *
get the next valid and idle contact to talk to
|
GetNumNotYetCompletedContacts(void)
|
int16_t
get the number of contacts that are valid, but we haven't talk to them yet.
|
GetNumReliableResponses(void)
|
int16_t
get the number of 'reliable' responses collected so far.
|
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
|
|
InvalidateAllContacts(void)
|
void
invalidate all local contacts
|
InvalidateServiceContact(void)
|
void
invalidate contact to the service
|
RegisterCommError(Contact *const aContact)
|
void
register communication error on a certain contact, and shorten auto discovery period if needed aContact can be NULL to indicate we have no one to talk to, and hence just shorten the auto discovery period
|
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
|
send unicast sync request to a contact.
|
SetAllCompletedContactsToIdle(void)
|
int16_t
reset all completed contacts to idle state again, but don't touch the response.
|
SetAllValidContactsToIdleAndInvalidateResponse(void)
|
int16_t
set all valid local contacts to idle state and clear the response.
|
SetClientState(const ClientState state)
|
void
|
SetupUnicastCommContext(Contact *const aContact)
|
create new Weave Exchange for unicast communication
|
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
|
void
store the contact information of a node who just sent us a time change notification
|
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
|
void
process a response coming back from a multicast request
|
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
|
void
process a response coming back from a unicast request
|
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
|
initialize for the Client role.
|
_InitServer(const bool aIsAlwaysFresh)
|
initialize for the Server role.
|
_ShutdownClient(void)
|
stop the client not available in callbacks.
|
_ShutdownCoordinator(void)
|
stop the coordinator not available in callbacks.
|
_ShutdownServer(void)
|
stop the server not available in callbacks.
|
Protected static functions |
|
---|---|
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 from Weave Exchange when a time sync request arrives
|
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 from Weave Timer when we passed the unreliable after boot barrier
|
IsOperationalState(ClientState aState)
|
bool
Determine whether given state is operational.
|
_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
states used for auto sync feature.
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 )
these state transition functions are internal and cannot return error code as the previous state would have no way to handle them.
any failure shall result to eventually another state transition (could be timeout) if even the timer fails, we are out of trick and could hang in some wrong state
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 )
Public types
ClientState
ClientState
current state of this Time Sync Client
CommState
CommState
status of communication to a certain contact.
This is in the public because Contact is in public
ContributorFilter
void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)
callback happens right before we calculate the time correction from responses.
application layer could overwrite aContact[i].mResponseStatus to kResponseStatus_Invalid so that response would be ignored in the calculation
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
OnSyncRequestReceivedHandler
bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)
callback to indicate we just received a time sync request.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameters |
|
||||||||
Returns |
false and the engine shall ignore this request
|
ResponseStatus
ResponseStatus
status of stored response to a certain contact.
This is in the public because Contact is in public
ServerState
ServerState
current state of this Time Sync Server
SyncFailedHandler
void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)
callback happens when sync is considered failed, including auto sync.
note that callback doesn't happen if Abort is called to stop syncing
Details | |||||
---|---|---|---|---|---|
Parameters |
|
SyncSucceededHandler
bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
callback happens after sync is considered successful, including auto sync, but before the result is applied.
Note that successful doesn't mean we have applicable results. In case no response was received, aNumContributor would be set to 0. application layer could overwrite aContact[i].mResponseStatus to kResponseStatus_Invalid so that response would be ignored in the calculation
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|
||||||||||
Returns |
true if this offset shall be used to adjust system time. in case aNumContributor is 0, the return value would be ignored.
|
TimeChangeNotificationHandler
void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)
callback to indicate we just received a Time Change Notification.
if auto sync mode is enabled, a time sync would be scheduled shortly after this callback automatically. otherwise the application layer can choose to call Sync family of functions to directly kick off sync operation not restricted by the normal not-available-in-call-back rule. however, it must be noted that this special callback is still on top of callback stack of Weave exchange layer.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
Public attributes
FilterTimeCorrectionContributor
ContributorFilter FilterTimeCorrectionContributor
OnSyncFailed
SyncFailedHandler OnSyncFailed
OnSyncRequestReceived
OnSyncRequestReceivedHandler OnSyncRequestReceived
if not set, the default implementation always returns true
OnSyncSucceeded
SyncSucceededHandler OnSyncSucceeded
if not set, the default behavior is taking all results, except for very small server corrections
OnTimeChangeNotificationReceived
TimeChangeNotificationHandler OnTimeChangeNotificationReceived
mEncryptionType
uint8_t mEncryptionType
encryption method for local communication
mKeyId
uint16_t mKeyId
key id used for local communication
Protected attributes
mApp
void * mApp
pointer to higher layer data
mClientState
ClientState mClientState
mConnectionToService
WeaveConnection * mConnectionToService
TCP connection used to talk to the service.
mContacts
Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Contact information learned throughout discovery.
mIsAlwaysFresh
bool mIsAlwaysFresh
mIsInCallback
bool mIsInCallback
true if we're in a callback to higher layer
mLastLikelihoodSent
int8_t mLastLikelihoodSent
mNumContributorInLastLocalSync
uint8_t mNumContributorInLastLocalSync
mRole
TimeSyncRole mRole
Actual role of this node.
mServerState
ServerState mServerState
mServiceContact
Contact mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t mTimestampLastCorrectionFromServerOrNtp_usec
note it has to be boot time as we need compensation for sleep time
mTimestampLastLocalSync_usec
timesync_t mTimestampLastLocalSync_usec
note it has to be boot time as we need compensation for sleep time
Public functions
Abort
WEAVE_ERROR Abort( void )
force the engine to go back to idle state, aborting anything it is doing.
note no sync success or failure would be called. all Weave Exchanges would be closed. TCP connections would not be touched further. no operation if we're already in idle state. not available in callbacks.
Details | |
---|---|
Returns |
WEAVE_NO_ERROR on success
|
DisableAutoSync
void DisableAutoSync( void )
disable auto sync.
only available in idle state. not available in callbacks.
EnableAutoSync
WEAVE_ERROR EnableAutoSync( const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec )
enable auto sync.
only available in idle state. discovery happens right away. not available in callbacks.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
||||||
Returns |
WEAVE_NO_ERROR on success
|
GetCapacityOfContactList
int GetCapacityOfContactList( void ) const
simple getter for the maximum number of contacts this engine is configured to store
GetNextLikelihood
int8_t GetNextLikelihood( void ) const
extract the likelihood for persistent.
the result would only be valid after sync operation is completed, within callbacks of OnSyncSucceeded and OnSyncFailed. otherwise it's transient and might be the current Likelihood rather than the next one to be used.
Details | |
---|---|
Returns |
likelihood for response to be used in the next request
|
InitClient
WEAVE_ERROR InitClient( void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
initialize this client.
not available in callbacks
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|
||||||||||||
Returns |
WEAVE_NO_ERROR on success
|
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 )
initialize this coordinator.
Details | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|
||||||||||||
Returns |
WEAVE_NO_ERROR on success
|
InitServer
WEAVE_ERROR InitServer( void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh )
initialize for the Server role must be called as the first function after object construction if the intention is to be a Time Sync Server.
not available in callbacks
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
||||||
Returns |
WEAVE_NO_ERROR on success
|
MulticastTimeChangeNotification
void MulticastTimeChangeNotification( const uint8_t aEncryptionType, const uint16_t aKeyId ) const
Called by higher layer to multicast time change notification.
not available in callbacks.
Details | |||||
---|---|---|---|---|---|
Parameters |
|
RegisterCorrectionFromServerOrNtp
void RegisterCorrectionFromServerOrNtp( void )
Called by higher layer to indicate that we just finished a round of time sync with either any Server or through some reliable means like NTP.
RegisterLocalSyncOperation
void RegisterLocalSyncOperation( const uint8_t aNumContributor )
Called by higher layer to indicate that we just finished a round of time sync with other local Coordinators.
Details | |||
---|---|---|---|
Parameters |
|
Shutdown
WEAVE_ERROR Shutdown( void )
stop the service, no matter which role it is playing.
This function must be called to properly reclaim resources allocated, before another call to any of the init functions can be made. not available in callbacks.
Details | |
---|---|
Returns |
WEAVE_NO_ERROR on success
|
Sync
WEAVE_ERROR Sync( const bool aForceDiscoverAgain )
sync using existing contacts.
sync operation could fail if there is no valid contacts available. set aForceDiscoverAgain to true to force discovery immediately. only available in idle state. not available in callbacks.
Details | |||
---|---|---|---|
Parameters |
|
||
Returns |
WEAVE_NO_ERROR on success
|
SyncWithNodes
WEAVE_ERROR SyncWithNodes( const int16_t aNumNode, const ServingNode aNodes[] )
sync using the given list of contacts.
existing contact list would be flushed. only available in idle state. not available in callbacks.
Details | |||||
---|---|---|---|---|---|
Parameters |
|
||||
Returns |
WEAVE_NO_ERROR on success
|
SyncWithService
WEAVE_ERROR SyncWithService( WeaveConnection *const aConnection )
sync using the given TCP connection and associated encryption and key id.
caller must take ownership of the TCP connection after sync finishes. no callback would be overwritten for the TCP connection, as a new Weave Exchange would be created and callbacks set on top of that context only available in idle state. not available in callbacks.
Details | |||
---|---|---|---|
Parameters |
|
||
Returns |
WEAVE_NO_ERROR on success
|
TimeSyncNode
TimeSyncNode( void )
Protected functions
AbortOnError
void AbortOnError( const WEAVE_ERROR aCode )
internal abort if aCode is not WEAVE_NO_ERROR
AutoSyncNow
void AutoSyncNow( void )
internal function to kick off an auto sync session
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 )
induce callback to the application layer.
set aIsSuccessful to false to induce the error callback
ClearState
void ClearState( void )
EndLocalSyncAndTryCalculateTimeFix
void EndLocalSyncAndTryCalculateTimeFix( void )
EndServiceSyncAndTryCalculateTimeFix
void EndServiceSyncAndTryCalculateTimeFix( void )
FindReplaceableContact
Contact * FindReplaceableContact( const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification )
return a slot to store contact information
GetClientStateName
const char *const GetClientStateName( void ) const
GetNextIdleContact
Contact * GetNextIdleContact( void )
get the next valid and idle contact to talk to
GetNumNotYetCompletedContacts
int16_t GetNumNotYetCompletedContacts( void )
get the number of contacts that are valid, but we haven't talk to them yet.
GetNumReliableResponses
int16_t GetNumReliableResponses( void )
get the number of 'reliable' responses collected so far.
called to determine if we have collected enough number of responses
InitState
WEAVE_ERROR InitState( const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr )
InvalidateAllContacts
void InvalidateAllContacts( void )
invalidate all local contacts
InvalidateServiceContact
void InvalidateServiceContact( void )
invalidate contact to the service
RegisterCommError
void RegisterCommError( Contact *const aContact )
register communication error on a certain contact, and shorten auto discovery period if needed aContact can be NULL to indicate we have no one to talk to, and hence just shorten the auto discovery period
SendSyncRequest
WEAVE_ERROR SendSyncRequest( bool *const rIsMessageSent, Contact *const aContact )
send unicast sync request to a contact.
*rIsMessageSent will be set to indicate if the message has been sent out. communication errors like address not reachable is not returned, so caller shall check both the return code and *rIsMessageSent.
SetAllCompletedContactsToIdle
int16_t SetAllCompletedContactsToIdle( void )
reset all completed contacts to idle state again, but don't touch the response.
this is called between two rounds of communication to the same node
SetAllValidContactsToIdleAndInvalidateResponse
int16_t SetAllValidContactsToIdleAndInvalidateResponse( void )
set all valid local contacts to idle state and clear the response.
this is called before we start contacting them one by one
SetClientState
void SetClientState( const ClientState state )
SetupUnicastCommContext
WEAVE_ERROR SetupUnicastCommContext( Contact *const aContact )
create new Weave Exchange for unicast communication
StoreNotifyingContact
void StoreNotifyingContact( const uint64_t aNodeId, const IPAddress & aNodeAddr )
store the contact information of a node who just sent us a time change notification
UpdateMulticastSyncResponse
void UpdateMulticastSyncResponse( const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse )
process a response coming back from a multicast request
UpdateUnicastSyncResponse
void UpdateUnicastSyncResponse( const TimeSyncResponse & aResponse )
process a response coming back from a unicast request
_InitClient
WEAVE_ERROR _InitClient( const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood )
initialize for the Client role.
Intended to be used internally by Init family of public functions. Must set mClientState before return. not available in callbacks
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
||||||
Returns |
WEAVE_NO_ERROR on success
|
_InitServer
WEAVE_ERROR _InitServer( const bool aIsAlwaysFresh )
initialize for the Server role.
Intended to be used internally by Init family of public functions. Must set mClientState before return. not available in callbacks
Details | |||
---|---|---|---|
Parameters |
|
||
Returns |
WEAVE_NO_ERROR on success
|
_ShutdownClient
WEAVE_ERROR _ShutdownClient( void )
stop the client not available in callbacks.
Details | |
---|---|
Returns |
WEAVE_NO_ERROR on success
|
_ShutdownCoordinator
WEAVE_ERROR _ShutdownCoordinator( void )
stop the coordinator not available in callbacks.
Details | |
---|---|
Returns |
WEAVE_NO_ERROR on success
|
_ShutdownServer
WEAVE_ERROR _ShutdownServer( void )
stop the server not available in callbacks.
Details | |
---|---|
Returns |
WEAVE_NO_ERROR on success
|
Protected static functions
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 from Weave Exchange when a time sync request arrives
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 from Weave Timer when we passed the unreliable after boot barrier
IsOperationalState
bool IsOperationalState( ClientState aState )
Determine whether given state is operational.
Convenience method to determine whether the ClientState denotes operational state, i.e. the client has completed initialization and is not in the process of shutting down.
Details | |||
---|---|---|---|
Parameters |
|
||
Returns |
true if the state falls after the initialization has completed and before the shutdown has started, false otherwise.
|
_OnSyncSucceeded
bool _OnSyncSucceeded( void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor )