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
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 enum
état actuel de ce client de synchronisation de l'heure
CommState enum
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 temporelle à 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 requête de synchronisation de l'heure.
ResponseStatus enum
le statut d'une réponse stockée à un contact donné.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
état actuel de ce serveur de synchronisation de l'heure
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
qui se produit lorsque la synchronisation est considérée comme ayant échoué (y compris 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 a été 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 ce champ n'est pas défini, l'implémentation par défaut renvoie toujours la valeur "true"
OnSyncSucceeded
Si cette règle n'est pas configurée, le comportement par défaut s'applique à tous les résultats, à l'exception de très petites corrections de serveur.
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
méthode de chiffrement pour la communication locale
mKeyId
uint16_t
ID de clé utilisé pour la communication locale

Attributs protégés

mApp
void *
pointeur vers les données de la 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" en cas de 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 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 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, en annulant ce qu’il est en train de faire.
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
la probabilité de persistante.
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)
d'initialiser ce coordinateur.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
l'initialisation pour le rôle "Serveur" doit être appelée 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 vers la notification de changement d'heure de multidiffusion.
RegisterCorrectionFromServerOrNtp(void)
void
Appelée par une couche supérieure pour indiquer que nous venons de terminer une synchronisation temporelle avec n'importe quel serveur ou par un moyen fiable comme NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Appelée par une couche supérieure pour indiquer que nous venons de terminer une synchronisation avec d'autres coordinateurs locaux.
Shutdown(void)
arrêter le service, quel que soit son rôle.
Sync(const bool aForceDiscoverAgain)
à l'aide des contacts existants.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
synchroniser à l'aide de la liste de contacts donnée.
SyncWithService(WeaveConnection *const aConnection)
synchroniser à l'aide de la connexion TCP donnée et de l'ID de chiffrement et de clé associé.

Fonctions protégées

AbortOnError(const WEAVE_ERROR aCode)
void
abandon 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 à la couche d'application.
ClearState(void)
void
DestroyCommContext(void)
bool
fermer le 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 à qui parler
GetNumNotYetCompletedContacts(void)
int16_t
obtenir le nombre de contacts valides, mais nous n'avons pas encore parlé.
GetNumReliableResponses(void)
int16_t
obtenir le nombre de réponses « fiables » collectées 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
enregistrer une erreur de communication sur un contact donné et raccourcir la période de détection automatique si nécessaire. Un contact peut être NULL pour indiquer que nous n'avons personne à qui parler, et donc raccourcir la période de détection automatique.
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
envoyer une demande de synchronisation unicast à un contact
SetAllCompletedContactsToIdle(void)
int16_t
réinitialisez tous les contacts terminés à l'état inactif, mais ne touchez pas 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 une plate-forme Weave Exchange pour la communication unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
Stocker 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 de multidiffusion ;
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
traiter une réponse provenant d'une requête unicast ;
_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êter le client non disponible dans les rappels.
_ShutdownCoordinator(void)
arrêter le coordinateur qui n'est pas disponible dans les rappels.
_ShutdownServer(void)
arrêter le serveur non disponible 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 à l'arrivée d'une requête de synchronisation de l'heure
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 non-fiabilité après la barrière de démarrage
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

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 finira par entraîner une autre transition d'état (peut-être un délai d'inactivité). Si même le minuteur échoue, nous sommes à court d'exercice et pouvons être bloqués 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 de l'heure

CommState

 CommState

le statut de la communication à un certain contact.

Ceci est public, car Contact est un public public

ContributorFilter

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

se produit juste avant de calculer la correction temporelle à partir des réponses.

couche application pourrait remplacer aContact[i].mResponseStatus par kResponseStatus_Invalid, afin que cette 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 des contacts et des états 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 requête 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 reçue, y compris des informations sur l'expéditeur.
[in] aLikelyhood
probabilité d'une réponse telle que demandée par le créateur
[in] aIsTimeCoordinator
"true" si le nœud d'origine est un coordinateur de synchronisation du temps
Renvoie
"false" et le moteur doit ignorer cette requête

ResponseStatus

 ResponseStatus

le statut d'une réponse stockée à un contact donné.

Ceci est public, car Contact est un public public

ServerState

 ServerState

état actuel de ce serveur de synchronisation de l'heure

Propriétés
kServerState_Idle

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

kServerState_UnreliableAfterBoot

temps réservé au serveur pour synchroniser son heure système par un autre moyen, uniquement significatif si aIsAlwaysFresh est défini sur "true" lorsque Init est appelé

SyncFailedHandler

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

qui se produit lorsque la synchronisation est considérée comme ayant échoué (y compris la synchronisation automatique).

notez que le rappel n'a pas lieu si la commande Abort 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
le motif 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 a été considérée comme réussie (y compris la synchronisation automatique), mais avant l'application du résultat.

Notez que l'obtention de succès ne signifie pas que nous disposons de résultats applicables. Si aucune réponse n'était reçue, aNumContributeur serait défini sur 0. La couche d'application pourrait remplacer aContact[i].mResponseStatus par 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] aOffsetUsec
quantité de correction en cours d'utilisation
[in] aIsReliable
la correction est considérée comme fiable par la logique intégrée
[in] aIsServer
La correction provient-elle du ou des serveurs ?
[in] aNumContributor
de nœuds ayant contribué à cette correction. La valeur 0 signifie que l'opération de synchronisation ne produit aucun résultat.
Renvoie
"true" si ce décalage doit être utilisé pour ajuster l'heure système. Si aNumContributor est défini sur 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 est automatiquement planifié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 une opération de synchronisation non limitée par la règle de rappel standard indisponible. Toutefois, il convient de noter que ce rappel spécial se trouve toujours au-dessus de la pile de rappel de la couche Weave Exchange.

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 ce champ n'est pas défini, l'implémentation par défaut renvoie toujours la valeur "true"

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

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

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

méthode de chiffrement pour la communication locale

mKeyId

uint16_t mKeyId

ID de clé utilisé pour la communication locale

Attributs protégés

mApp

void * mApp

pointeur vers les données de la 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" en cas de 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 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 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, en annulant ce qu’il est en train de faire.

Notez qu'aucune synchronisation (succès ou échec) ne sera appelée. Tous les échanges Weave seraient clôturés. Les connexions TCP ne seront pas touchées davantage. Aucune opération si l'état est déjà inactif et 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.

Disponible uniquement à l'état inactif. 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.

Disponible uniquement à l'état inactif. La découverte s'effectue immédiatement. Elle n'est pas disponible dans les rappels.

Détails
Paramètres
[in] aSyncPeriod_msec
nombre de ms entre la synchronisation
[in] aNominalDiscoveryPeriod_msec
nombre de ms entre la découverte, 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 

la probabilité de persistante.

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

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

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 "Gestionnaire de la place de marché Weave" à 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é 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
)

d'initialiser ce coordinateur.

Détails
Paramètres
[in] aExchangeMgr
Pointeur vers un objet "Gestionnaire de la place de marché Weave" à 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 la synchronisation
[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 la découverte, 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
)

l'initialisation pour le rôle "Serveur" doit être appelée 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 "Gestionnaire de la place de marché Weave" à l'échelle du système
[in] aIsAlwaysFresh
peut être défini sur "true" pour indiquer que le serveur est toujours synchronisé, sauf pour l'heure initiale non 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 vers la notification de changement d'heure de multidiffusion.

non disponible dans les rappels.

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

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

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

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

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

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

Arrêt

WEAVE_ERROR Shutdown(
  void
)

arrêter le service, quel que soit son rôle.

Cette fonction doit être appelée pour récupérer correctement les ressources allouées avant de pouvoir effectuer un autre appel à l'une des fonctions init. Elle n'est pas disponible dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

Synchroniser

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

à 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étection immédiatement. Disponible uniquement à l'état inactif. Non disponible dans les rappels.

Détails
Paramètres
[in] aForceDiscoverAgain
"True" si tous les contacts existants doivent être supprimés et 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[]
)

synchroniser à l'aide de la liste de contacts donnée.

la liste de contacts existante serait supprimée. Disponible uniquement à l'état inactif. Non disponible dans les rappels.

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

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

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

L'appelant doit s'approprier la connexion TCP une fois la synchronisation terminée. Aucun rappel ne sera écrasé pour la connexion TCP, car un nouvel échange Weave Exchange serait créé et les rappels définis sur ce contexte ne sont disponibles qu'en cas d'inactivité. Non disponibles dans les rappels.

Détails
Paramètres
[in] aConnection
Pointeur vers la 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
)

abandon 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 à la couche d'application.

Définissez aIsRéussi sur "false" pour déclencher le rappel d'erreur.

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

fermer le 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 à qui parler

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

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

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

obtenir le nombre de réponses « fiables » collectées jusqu’à présent.

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
)

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

SendSyncRequest

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

envoyer une demande de synchronisation unicast à un contact

*rIsMessageSent est configuré pour indiquer si le message a été envoyé. Les erreurs de communication telles que l'adresse inaccessible ne sont pas renvoyées. L'appelant doit donc vérifier à la fois le code de retour et *rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

réinitialisez tous les contacts terminés à l'état inactif, mais ne touchez pas la réponse.

entre deux cycles de communication 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 fonction 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 une plate-forme Weave Exchange pour la communication unicast

StoreNotifyingContact

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

Stocker 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 de multidiffusion ;

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

traiter une réponse provenant d'une requête unicast ;

Client_init

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. Vous devez définir mClientState avant le retour. 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é pour la phase de découverte
Renvoie
WEAVE_NO_ERROR en cas de réussite

_ServeurInit

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

pour le rôle "Serveur".

Destiné à être utilisé en interne par la famille de fonctions publiques Init. Vous devez définir mClientState avant le retour. 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 pour l'heure initiale non 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êter le client non disponible dans les rappels.

Détails
Renvoie
WEAVE_NO_ERROR en cas de réussite

_coordinateur d'arrêt

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

_Arrêter le serveur

WEAVE_ERROR _ShutdownServer(
  void
)

arrêter le serveur non disponible 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 à l'arrivée d'une requête de synchronisation de l'heure

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 non-fiabilité après la barrière de démarrage

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 que le client a terminé l'initialisation et n'est pas en cours d'arrêt.

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

_OnSyncSucceeded (Synchronisation réussie)

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