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

Résumé

Héritage

Hérite de: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Constructeurs et destructeurs

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
utilisés pour la fonctionnalité de synchronisation automatique.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
le contexte de communication.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
ces fonctions de transition d'état sont internes et ne peuvent pas renvoyer de code d'erreur, car l'état précédent n'aurait aucun moyen de les gérer.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Types publics

ClientState énum
état actuel de ce client de synchronisation temporelle
CommState énum
le statut de la communication à un certain contact.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
se produit juste avant de calculer la correction de l'heure à partir des réponses.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
pour indiquer que nous venons de recevoir une demande de synchronisation de l'heure.
ResponseStatus énum
l'état d'une réponse stockée à un contact donné.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
énum
état actuel de ce serveur de synchronisation temporelle
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
se produit lorsque la synchronisation est considérée comme ayant échoué, ce qui inclut la synchronisation automatique.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
se produit une fois que la synchronisation est considérée comme réussie, y compris la synchronisation automatique, mais avant l'application du résultat.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
pour indiquer que nous venons de recevoir une notification de changement d'heure.

Attributs publics

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
Si cette règle n'est pas configurée, l'implémentation par défaut renvoie toujours "true"
OnSyncSucceeded
Si cette règle n'est pas configurée, le comportement par défaut prend tous les résultats, à l'exception des très petites corrections du serveur
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
méthode de cryptage pour la communication locale
mKeyId
uint16_t
ID de clé utilisé pour les communications locales

Attributs protégés

mApp
void *
pointeur vers des données de couche supérieure
mClientState
mConnectionToService
Connexion TCP utilisée pour communiquer avec le service.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Coordonnées apprises tout au long de la découverte.
mIsAlwaysFresh
bool
mIsInCallback
bool
"true" si nous sommes dans un rappel de la couche supérieure
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Rôle réel de ce nœud.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
Notez qu'il doit s'agir du temps de démarrage, car nous avons besoin d'une compensation pour le temps de sommeil.
mTimestampLastLocalSync_usec
timesync_t
Notez qu'il doit s'agir du temps de démarrage, car nous avons besoin d'une compensation pour le temps de sommeil.

Fonctions publiques

Abort(void)
forcer le moteur à revenir à l'état inactif, ce qui annule toute activité en cours.
DisableAutoSync(void)
void
désactiver la synchronisation automatique.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
activer la synchronisation automatique.
GetCapacityOfContactList(void) const
int
getter simple pour le nombre maximal de contacts que ce moteur est configuré pour stocker
GetClientState(void) const
Getter simple pour l'état du client
GetNextLikelihood(void) const
int8_t
pour extraire la probabilité des valeurs persistantes.
GetServerState(void) const
getter simple pour l'état du serveur
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
pour initialiser ce 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)
initialisez ce coordinateur.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
Initialiser pour le rôle Serveur doit être appelé en tant que première fonction après la construction de l'objet si l'intention est d'être un serveur de synchronisation temporelle.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Appelée par la couche supérieure pour la notification de modification de l'heure de multidiffusion.
RegisterCorrectionFromServerOrNtp(void)
void
Appelée par la couche supérieure pour indiquer que nous venons de terminer une synchronisation arrondie avec n'importe quel serveur ou par un moyen fiable tel que NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Appelée par une couche supérieure pour indiquer que nous venons de terminer une synchronisation partielle avec d'autres coordinateurs locaux.
Shutdown(void)
le service, quel que soit son rôle.
Sync(const bool aForceDiscoverAgain)
synchroniser à l'aide des contacts existants.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
effectuer la synchronisation à l'aide de la liste de contacts fournie.
SyncWithService(WeaveConnection *const aConnection)
à l'aide de la connexion TCP donnée et de l'ID de clé et de chiffrement associé.

Fonctions protégées

AbortOnError(const WEAVE_ERROR aCode)
void
annulation interne si aCode n'est pas WEAVE_NO_ERROR
AutoSyncNow(void)
void
Fonction interne permettant de lancer une session de synchronisation automatique
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)
à déclencher un rappel vers la couche d'application.
ClearState(void)
void
DestroyCommContext(void)
bool
Fermez le contexte ExchangeContext Weave.
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
renvoyer un emplacement pour stocker les coordonnées
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
obtenir le prochain contact valide et inactif avec lequel communiquer
GetNumNotYetCompletedContacts(void)
int16_t
obtenir le nombre de contacts valides, mais dont nous n'avons pas encore parlé.
GetNumReliableResponses(void)
int16_t
obtenir le nombre de "fiables" réponses recueillies jusqu’à présent.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
invalider tous les contacts locaux
InvalidateServiceContact(void)
void
invalider le contact avec le service
RegisterCommError(Contact *const aContact)
void
enregistre une erreur de communication sur un contact donné et raccourcit la période de découverte automatique si nécessaire. La valeur d'un contact peut être NULL pour indiquer que nous n'avons personne à qui parler, et donc raccourcir la période de découverte automatique.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
envoyer une demande de synchronisation unicast à un contact.
SetAllCompletedContactsToIdle(void)
int16_t
rétablir l'état inactif de tous les contacts terminés, mais sans modifier la réponse.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
définir tous les contacts locaux valides sur l'état inactif et effacer la réponse ;
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
Créer un échange Weave Exchange pour une communication monodiffusion
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
enregistrer les coordonnées d'un nœud qui vient de nous envoyer une notification de changement d'heure
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
traiter une réponse provenant d'une requête multicast
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
traiter une réponse provenant d'une requête monodiffusion
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
pour le rôle Client.
_InitServer(const bool aIsAlwaysFresh)
pour le rôle Serveur.
_ShutdownClient(void)
Arrêtez le client qui n'est pas disponible dans les rappels.
_ShutdownCoordinator(void)
arrêter le coordinateur qui n'est pas disponible dans les rappels ;
_ShutdownServer(void)
si vous arrêtez le serveur et ne sont pas disponibles dans les rappels.

Fonctions statiques protégées

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
Rappel de Weave Exchange lorsqu'une requête de synchronisation de l'heure arrive
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
rappel du minuteur Weave lorsque nous avons transmis le problème de fiabilité après la barrière de sécurité
IsOperationalState(ClientState aState)
bool
Déterminer si un état donné est opérationnel
_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

utilisés pour la fonctionnalité de synchronisation automatique.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

le contexte de communication.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

ces fonctions de transition d'état sont internes et ne peuvent pas renvoyer de code d'erreur, car l'état précédent n'aurait aucun moyen de les gérer.

tout échec entraînera à terme une autre transition d'état (il peut s'agir d'un délai d'inactivité) si même le minuteur échoue, nous sommes hors de cause et pourrait rester dans un état incorrect.

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
)

Types publics

ClientState

 ClientState

état actuel de ce client de synchronisation temporelle

CommState

 CommState

le statut de la communication à un certain contact.

Cette information est publique, car le contact est public.

ContributorFilter

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

se produit juste avant de calculer la correction de l'heure à partir des réponses.

La couche d'application pourrait remplacer aContact[i].mResponseStatus en kResponseStatus_Invalid, afin que la réponse soit ignorée dans le calcul.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aContact
tableau de contacts et état des réponses
[in] aSize
nombre d'enregistrements dans le tableau aContact

OnSyncRequestReceivedHandler

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

pour indiquer que nous venons de recevoir une demande de synchronisation de l'heure.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aMsgInfo
Un élément WeaveMessageInfo contenant des informations sur la requête de synchronisation de l'heure de réception, y compris des informations sur l'expéditeur.
[in] aLikelyhood
de la probabilité de réponse à la demande du demandeur
[in] aIsTimeCoordinator
La valeur est "true" si le nœud d'origine est un coordinateur de synchronisation.
Renvoie
"false" et le moteur ignorera cette requête

ResponseStatus

 ResponseStatus

l'état d'une réponse stockée à un contact donné.

Cette information est publique, car le contact est public.

ServerState

 ServerState

état actuel de ce serveur de synchronisation temporelle

Propriétés
kServerState_Idle

le serveur est prêt à répondre aux requêtes avec des paramètres standards ;

kServerState_UnreliableAfterBoot

temps réservé au serveur pour synchroniser l'heure système par d'autres moyens uniquement si aIsAlwaysFresh est vrai lorsque Init est appelé

SyncFailedHandler

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

se produit lorsque la synchronisation est considérée comme ayant échoué, ce qui inclut la synchronisation automatique.

notez que le rappel ne se produit pas si l'option "Annuler" est appelée pour arrêter la synchronisation.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aErrorCode
la raison de l'échec.

SyncSucceededHandler

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

se produit une fois que la synchronisation est considérée comme réussie, y compris la synchronisation automatique, mais avant l'application du résultat.

Notez que la réussite ne signifie pas que nous disposons de résultats applicables. En l'absence de réponse, aNumContributor serait défini sur 0. La couche d'application pourrait remplacer aContact[i].mResponseStatus en kResponseStatus_Invalid, de sorte que la réponse serait ignorée dans le calcul.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aOffsetUsec
quantité de correction dans "usec"
[in] aIsReliable
est la correction considérée comme fiable par la logique intégrée
[in] aIsServer
La correction provient-elle du ou des serveurs
[in] aNumContributor
nombre de nœuds ayant contribué à cette correction. 0 signifie qu'il n'y a aucun résultat pour l'opération de synchronisation.
Renvoie
"true" si ce décalage doit être utilisé pour ajuster l'heure système. si la valeur de aNumContributor est 0, la valeur renvoyée est ignorée.

TimeChangeNotificationHandler

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

pour indiquer que nous venons de recevoir une notification de changement d'heure.

Si le mode de synchronisation automatique est activé, une synchronisation de l'heure sera automatiquement programmée peu de temps après ce rappel. Sinon, la couche d'application peut choisir d'appeler la famille de fonctions de synchronisation pour lancer directement l'opération de synchronisation non limitée par la règle normale de non-disponible dans le rappel. Toutefois, il convient de noter que ce rappel spécial se trouve toujours au-dessus de la pile de rappel de la couche de l'échange Weave.

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche d'application, défini dans Init.
[in] aNodeId
ID du nœud à l'origine de la demande
[in] aNodeAddr
adresse du nœud à l'origine de la demande

Attributs publics

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

Si cette règle n'est pas configurée, l'implémentation par défaut renvoie toujours "true"

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

Si cette règle n'est pas configurée, le comportement par défaut prend tous les résultats, à l'exception des très petites corrections du serveur

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

méthode de cryptage pour la communication locale

mKeyId

uint16_t mKeyId

ID de clé utilisé pour les communications locales

Attributs protégés

mApp

void * mApp

pointeur vers des données de couche supérieure

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Connexion TCP utilisée pour communiquer avec le service.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Coordonnées apprises tout au long de la découverte.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

"true" si nous sommes dans un rappel de la couche supérieure

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Rôle réel de ce nœud.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

Notez qu'il doit s'agir du temps de démarrage, car nous avons besoin d'une compensation pour le temps de sommeil.

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

Notez qu'il doit s'agir du temps de démarrage, car nous avons besoin d'une compensation pour le temps de sommeil.

Fonctions publiques

Annuler

WEAVE_ERROR Abort(
  void
)

forcer le moteur à revenir à l'état inactif, ce qui annule toute activité en cours.

Notez qu'aucun appel de réussite ou d'échec de synchronisation n'est effectué. tous les échanges Weave sont fermés. Les connexions TCP ne seront pas touchées davantage. aucune opération si nous sommes déjà à l'état inactif. non disponible dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

DisableAutoSync

void DisableAutoSync(
  void
)

désactiver la synchronisation automatique.

n'est disponible qu'en cas d'inactivité. non disponible dans les rappels.

EnableAutoSync

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

activer la synchronisation automatique.

n'est disponible qu'en cas d'inactivité. la découverte se produit immédiatement. non disponible dans les rappels.

Détails
Paramètres
[in] aSyncPeriod_msec
nombre de ms entre les synchronisations
[in] aNominalDiscoveryPeriod_msec
Nombre de ms entre la détection, si aucune erreur de communication n'est observée
[in] aShortestDiscoveryPeriod_msec
délai le plus court entre la découverte, en millisecondes, si une erreur de communication a été observée
Renvoie
WEAVE_NO_ERROR en cas de réussite

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

getter simple pour le nombre maximal de contacts que ce moteur est configuré pour stocker

GetClientState

ClientState GetClientState(
  void
) const 

Getter simple pour l'état du client

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

pour extraire la probabilité des valeurs persistantes.

le résultat n'est valide qu'une fois l'opération de synchronisation terminée, dans les rappels de OnSyncSucceeded et OnSyncFailed. sinon il est temporaire et pourrait correspondre à la probabilité actuelle plutôt qu'à la probabilité suivante à utiliser.

Détails
Renvoie
probabilité que la réponse soit utilisée dans la prochaine requête

GetServerState

ServerState GetServerState(
  void
) const 

getter simple pour l'état du serveur

InitClient

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

pour initialiser ce client.

non disponible dans les rappels

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche supérieure, utilisé dans les rappels de la couche supérieure.
[in] aExchangeMgr
Pointeur vers un objet Weave Exchange Manager à l'échelle du système
[in] aRole
peut être kTimeSyncRole_Client ou kTimeSyncRole_Coordinator
[in] aEncryptionType
type de chiffrement à utiliser pour les requêtes et les réponses
[in] aKeyId
ID de clé à utiliser pour les requêtes et les réponses
[in] aInitialLikelyhood
Probabilité initiale d'être utilisée pour la phase de découverte
Renvoie
WEAVE_NO_ERROR en cas de réussite

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
)

initialisez ce coordinateur.

Détails
Paramètres
[in] aExchangeMgr
Pointeur vers un objet Weave Exchange Manager à l'échelle du système
[in] aEncryptionType
type de chiffrement à utiliser pour les requêtes et les réponses
[in] aKeyId
ID de clé à utiliser pour les requêtes et les réponses
[in] aSyncPeriod_msec
nombre de ms entre les synchronisations
[in] aNominalDiscoveryPeriod_msec
délai le plus court entre la découverte, en millisecondes, si aucune erreur de communication n'est observée
[in] aShortestDiscoveryPeriod_msec
plus petit nombre de ms entre les découvertes, si une erreur de communication a été observée
Renvoie
WEAVE_NO_ERROR en cas de réussite

InitServer

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

Initialiser pour le rôle Serveur doit être appelé en tant que première fonction après la construction de l'objet si l'intention est d'être un serveur de synchronisation temporelle.

non disponible dans les rappels

Détails
Paramètres
[in] aApp
Pointeur vers les données de la couche supérieure, utilisé dans les rappels de la couche supérieure.
[in] aExchangeMgr
Pointeur vers un objet Weave Exchange Manager à l'échelle du système
[in] aIsAlwaysFresh
peut être défini sur "true" pour indiquer que le serveur est toujours synchronisé, sauf pendant la période initiale peu fiable. doit être défini sur "false" pour le coordinateur.
Renvoie
WEAVE_NO_ERROR en cas de réussite

MulticastTimeChangeNotification

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

Appelée par la couche supérieure pour la notification de modification de l'heure de multidiffusion.

non disponible dans les rappels.

Détails
Paramètres
[in] aEncryptionType
type de chiffrement à utiliser pour cette notification
[in] aKeyId
ID de clé à utiliser pour cette notification

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Appelée par la couche supérieure pour indiquer que nous venons de terminer une synchronisation arrondie avec n'importe quel serveur ou par un moyen fiable tel que NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Appelée par une couche supérieure pour indiquer que nous venons de terminer une synchronisation partielle avec d'autres coordinateurs locaux.

Détails
Paramètres
[in] aNumContributor
nombre de coordinateurs ayant contribué à cette synchronisation temporelle

Arrêt

WEAVE_ERROR Shutdown(
  void
)

le service, quel que soit son rôle.

Cette fonction doit être appelée pour récupérer correctement les ressources allouées avant que l'une des fonctions init ne puisse être appelée à nouveau. non disponible dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

Synchroniser

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

synchroniser à l'aide des contacts existants.

l'opération de synchronisation peut échouer si aucun contact valide n'est disponible. Définissez aForceDiscoverAgain sur "true" pour forcer la découverte immédiatement. n'est disponible qu'en cas d'inactivité. non disponible dans les rappels.

Détails
Paramètres
[in] aForceDiscoverAgain
Vrai si tous les contacts existants doivent être vidés et que l'opération de découverte doit être effectuée
Renvoie
WEAVE_NO_ERROR en cas de réussite

SyncWithNodes

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

effectuer la synchronisation à l'aide de la liste de contacts fournie.

votre liste de contacts existante serait vidée. n'est disponible qu'en cas d'inactivité. non disponible dans les rappels.

Détails
Paramètres
[in] aNumNode
nombre de contacts dans le tableau aNode
[in] aNodes
tableau d'enregistrements de contacts
Renvoie
WEAVE_NO_ERROR en cas de réussite

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

à l'aide de la connexion TCP donnée et de l'ID de clé et de chiffrement associé.

l'appelant doit s'approprier la connexion TCP une fois la synchronisation terminée. aucun rappel ne serait écrasé pour la connexion TCP, car un nouvel échange Weave Exchange serait créé et les rappels définis en plus de ce contexte ne seraient disponibles qu'à l'état inactif. non disponible dans les rappels.

Détails
Paramètres
[in] aConnection
Pointeur vers une connexion Weave
Renvoie
WEAVE_NO_ERROR en cas de réussite

TimeSyncNode

 TimeSyncNode(
  void
)

Fonctions protégées

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

annulation interne si aCode n'est pas WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

Fonction interne permettant de lancer une session de synchronisation automatique

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
)

à déclencher un rappel vers la couche d'application.

Définissez aIsSuccess sur "false" pour induire le rappel d'erreur.

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

Fermez le contexte ExchangeContext Weave.

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

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

renvoyer un emplacement pour stocker les coordonnées

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

obtenir le prochain contact valide et inactif avec lequel communiquer

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

obtenir le nombre de contacts valides, mais dont nous n'avons pas encore parlé.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

obtenir le nombre de "fiables" réponses recueillies jusqu’à présent.

appelé pour déterminer si nous avons collecté suffisamment de réponses

InitState

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

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

invalider tous les contacts locaux

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

invalider le contact avec le service

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

enregistre une erreur de communication sur un contact donné et raccourcit la période de découverte automatique si nécessaire. La valeur d'un contact peut être NULL pour indiquer que nous n'avons personne à qui parler, et donc raccourcir la période de découverte automatique.

SendSyncRequest

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

envoyer une demande de synchronisation unicast à un contact.

*rIsMessageSent sera défini pour indiquer si le message a été envoyé. les erreurs de communication telles que l’adresse inaccessible n’est pas renvoyée, donc l’appelant doit vérifier à la fois le code de retour et *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

rétablir l'état inactif de tous les contacts terminés, mais sans modifier la réponse.

cette méthode est appelée entre deux échanges de communications avec le même nœud

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

définir tous les contacts locaux valides sur l'état inactif et effacer la réponse ;

cette méthode est appelée avant que nous ne commencions à les contacter un par un

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

Créer un échange Weave Exchange pour une communication monodiffusion

StoreNotifyingContact

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

enregistrer les coordonnées d'un nœud qui vient de nous envoyer une notification de changement d'heure

UpdateMulticastSyncResponse

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

traiter une réponse provenant d'une requête multicast

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

traiter une réponse provenant d'une requête monodiffusion

_InitClient

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

pour le rôle Client.

Destiné à être utilisé en interne par la famille de fonctions publiques Init. mClientState doit être défini avant le renvoi. non disponible dans les rappels

Détails
Paramètres
[in] aEncryptionType
type de chiffrement à utiliser pour les requêtes et les réponses
[in] aKeyId
ID de clé à utiliser pour les requêtes et les réponses
[in] aInitialLikelyhood
Probabilité initiale d'être utilisée pour la phase de découverte
Renvoie
WEAVE_NO_ERROR en cas de réussite

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

pour le rôle Serveur.

Destiné à être utilisé en interne par la famille de fonctions publiques Init. mClientState doit être défini avant le renvoi. non disponible dans les rappels

Détails
Paramètres
[in] aIsAlwaysFresh
peut être défini sur "true" pour indiquer que le serveur est toujours synchronisé, sauf pendant la période initiale peu fiable. doit être défini sur "false" pour le coordinateur.
Renvoie
WEAVE_NO_ERROR en cas de réussite

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

Arrêtez le client qui n'est pas disponible dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

arrêter le coordinateur qui n'est pas disponible dans les rappels ;

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

si vous arrêtez le serveur et ne sont pas disponibles dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

Fonctions statiques protégées

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
)

Rappel de Weave Exchange lorsqu'une requête de synchronisation de l'heure arrive

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
)

rappel du minuteur Weave lorsque nous avons transmis le problème de fiabilité après la barrière de sécurité

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Déterminer si un état donné est opérationnel

Méthode pratique permettant de déterminer si l'état ClientState indique un état opérationnel, c'est-à-dire si le client a terminé l'initialisation et n'est pas en train de s'arrêter.

Détails
Paramètres
[in] aState
état à évaluer
Renvoie
"true" si l'état tombe après la fin de l'initialisation et avant le début de l'arrêt, "false" dans le cas contraire.

_OnSyncSucceeded

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