nl:: Weave:: Profiles:: ServiceDirectory:: WeaveServiceManager
#include <src/lib/profiles/service-directory/ServiceDirectory.h>
L'objet gestionnaire de l'annuaire du service Weave.
Résumé
Le gestionnaire de services Weave est l'interface principale des applications au service d'annuaire. En tant que tel, il masque les complications inhérentes à la recherche de l'entrée de répertoire associée à un point de terminaison de service, à l'exécution d'une recherche DNS sur un ou plusieurs des noms d'hôte qui s'y trouvent, à la tentative de connexion, à la sécurisation de la connexion, etc. Il peut également gérer un cache des informations de l’annuaire des services.
Constructeurs et destructeurs |
|
---|---|
WeaveServiceManager(void)
Cette méthode initialise l'instance WeaveServiceManager.
|
|
~WeaveServiceManager(void)
Cette méthode détruit l'instance WeaveServiceManager.
|
Types publics |
|
---|---|
@303{
|
énum |
OnConnectBegin)(struct ServiceConnectBeginArgs &args)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnConnectBeginvoid(*
Rappel d'application effectué juste avant l'établissement de la connexion. |
OnServiceEndpointQueryBegin)(void)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryBeginvoid(*
Un rappel d'application pour marquer l'heure d'une requête sortante d'annuaire de services. |
OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::OnServiceEndpointQueryEndWithTimeInfovoid(*
Un rappel d'application pour fournir des valeurs de temps à partir d'une réponse de l'Annuaire des services. |
RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::RootDirectoryAccessor Fonction d'accesseur pour les informations du répertoire racine. |
StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
|
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::StatusHandlervoid(*
Un gestionnaire pour les conditions d'erreur et d'état. |
Fonctions publiques |
|
---|---|
SetConnectBeginCallback(OnConnectBegin aConnectBegin)
|
void
Définissez une fonction de rappel à appeler immédiatement avant l'établissement de la connexion.
|
cancel(uint64_t aServiceEp, void *aAppState)
|
void
Cette méthode annule une demande d'association.
|
clearCache(void)
|
void
Cette méthode efface l'état et le cache du gestionnaire si l'état est dans l'état kServiceMgrState_Resolved du terminal, ce qui signifie que la réponse du point de terminaison de l'Annuaire des services a bien été reçue.
|
connect(uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf)
|
Cette méthode demande une connexion à un service Weave.
|
init(WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin)
|
Cette méthode initialise l'objet Service Manager.
|
lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
|
Cette méthode recherche les informations d'annuaire pour un point de terminaison de service.
|
lookup(uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry)
|
Cette méthode recherche les informations d'annuaire pour un point de terminaison de service.
|
onConnectionClosed(WEAVE_ERROR aError)
|
void
Cette méthode gère l'événement de fermeture de connexion signalé par le contexte de l'échange Weave associé.
|
onConnectionComplete(WEAVE_ERROR aError)
|
void
Cette méthode gère l'événement de connexion terminée pour la transaction de requête de point de terminaison du service.
|
onResponseReceived(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
|
void
Cette méthode gère tout message de réponse dans la conversation avec le service d'annuaire.
|
onResponseTimeout(void)
|
void
Cette méthode gère l'événement de délai d'inactivité dans lequel le service d'annuaire n'a reçu aucune réponse.
|
relocate(WEAVE_ERROR aError)
|
void
Cette méthode déplace le cache du répertoire de service.
|
relocate(void)
|
void
Cette méthode déplace le cache du répertoire de service.
|
replaceOrAddCacheEntry(uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId)
|
Ajoutez l'entrée de remplacement d'un nom d'hôte et d'un ID de port au début de la liste des répertoires.
|
reset(WEAVE_ERROR aError)
|
void
Cette méthode rétablit l'état initial du gestionnaire de services.
|
reset(void)
|
void
Cette méthode rétablit l'état initial du gestionnaire de services.
|
unresolve(WEAVE_ERROR aError)
|
void
Cette méthode invalide le cache du répertoire de service.
|
unresolve(void)
|
void
Cette méthode invalide le cache du répertoire de service.
|
Classes |
|
---|---|
nl:: |
Cette classe représente une transaction unique gérée par le gestionnaire de services. |
Types publics
@303
@303
Propriétés | |
---|---|
kWeave_DefaultSendTimeout
|
Nombre de millisecondes qu'une réponse à la requête de répertoire doit être reçue avant que le contexte de l'échange n'expire. |
OnConnectBegin
void(* OnConnectBegin)(struct ServiceConnectBeginArgs &args)
Rappel d'application effectué juste avant l'établissement de la connexion.
Ce rappel peut être utilisé par les applications pour observer et éventuellement modifier les arguments transmis à #WeaveConnection::Connect() lors de l'établissement d'une connexion de service. Ce rappel sera appelé à la fois pour la connexion au point de terminaison du service cible, ainsi que pour la connexion au point de terminaison de l'Annuaire des services dans le cas où une recherche dans le répertoire doit être effectuée.
OnServiceEndpointQueryBegin
void(* OnServiceEndpointQueryBegin)(void)
Un rappel d'application pour marquer l'heure d'une requête sortante d'annuaire de services.
Cette méthode est appelée lorsque nous sommes sur le point d'envoyer la requête de requête du point de terminaison du service. Utilisé pour mettre en correspondance avec OnServiceEndpointQueryEnd pour compenser le temps de vol des messages.
OnServiceEndpointQueryEndWithTimeInfo
void(* OnServiceEndpointQueryEndWithTimeInfo)(uint64_t timeQueryReceiptMsec, uint32_t timeProcessMsec)
Un rappel d'application pour fournir des valeurs de temps à partir d'une réponse de l'Annuaire des services.
Cette méthode est appelée lorsque nous obtenons des informations temporelles à partir de la réponse à la requête de l'Annuaire des services. Notez que ce rappel ne se produira que si une réponse est correctement analysée et que les informations temporelles sont incluses.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
RootDirectoryAccessor
WEAVE_ERROR(* RootDirectoryAccessor)(uint8_t *aDirectory, uint16_t aLength)
Fonction d'accesseur pour les informations du répertoire racine.
Vous devez commencer quelque part et, avec le répertoire de service, vous devez commencer par un répertoire stub contenant l'adresse d'un serveur que vous pouvez utiliser pour obtenir tout le reste. Étant donné que la disposition et la provenance de ces informations peuvent varier d'un appareil à l'autre, nous proposons ici un rappel d'accesseur.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Renvoie |
WEAVE_NO_ERROR en cas de réussite, sinon le processus de chargement sera abandonné.
|
StatusHandler
void(* StatusHandler)(void *anAppState, WEAVE_ERROR anError, StatusReport *aStatusReport)
Un gestionnaire pour les conditions d'erreur et d'état.
Un utilisateur du gestionnaire de services peut être informé de problèmes lors d'une tentative d'exécution d'une requête de connexion de deux manières. Il peut recevoir un rapport d'état du service ou une erreur WEAVE_ERROR générée en interne. Dans les deux cas, les informations proviennent de ce rappel.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
Fonctions publiques
SetConnectBeginCallback
void SetConnectBeginCallback( OnConnectBegin aConnectBegin )
Définissez une fonction de rappel à appeler immédiatement avant l'établissement de la connexion.
Détails | |||
---|---|---|---|
Paramètres |
|
WeaveServiceManager
WeaveServiceManager( void )
Cette méthode initialise l'instance WeaveServiceManager.
Notez que init() doit être appelé pour initialiser davantage cette instance.
annuler
void cancel( uint64_t aServiceEp, void *aAppState )
Cette méthode annule une demande d'association.
Cette méthode annule une requête de connexion en fonction de l'ID du point de terminaison du service et de l'objet d'état de l'application transmis au moment de la requête en tant qu'identifiants. S'il s'agit de la dernière requête de connexion, cette méthode efface également tout état de connexion à l'annuaire de services en attente.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
clearCache
void clearCache( void )
Cette méthode efface l'état et le cache du gestionnaire si l'état est dans l'état kServiceMgrState_Resolved du terminal, ce qui signifie que la réponse du point de terminaison de l'Annuaire des services a bien été reçue.
associer
WEAVE_ERROR connect( uint64_t aServiceEp, WeaveAuthMode aAuthMode, void *aAppState, StatusHandler aStatusHandler, WeaveConnection::ConnectionCompleteFunct aConnectionCompleteHandler, const uint32_t aConnectTimeoutMsecs, const InterfaceId aConnectIntf )
Cette méthode demande une connexion à un service Weave.
Il s'agit de l'appel de connexion de premier niveau. Il produit essentiellement une connexion sécurisée au service Weave en fonction d'un point de terminaison du service et d'un mode d'authentification, ou il ne fait pas de tentative.
Cette méthode ne peut être appelée qu'après un appel réussi à init(), et une demande de connexion peut être annulée par cancel().
Cette méthode peut être appelée avant que le cache local ne soit rempli de données provenant des données provisionnées par défaut ou d'un trajet vers le service d'annuaire. Le gestionnaire de services met simplement la requête en file d'attente avant que le contenu du cache puisse être déterminé.
Détails | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||||
Renvoie |
WEAVE_NO_ERROR en cas de réussite ; Sinon, un code d'erreur respectif.
|
init
WEAVE_ERROR init( WeaveExchangeManager *aExchangeMgr, uint8_t *aCache, uint16_t aCacheLen, RootDirectoryAccessor aAccessor, WeaveAuthMode aDirAuthMode, OnServiceEndpointQueryBegin aServiceEndpointQueryBegin, OnServiceEndpointQueryEndWithTimeInfo aServiceEndpointQueryEndWithTimeInfo, OnConnectBegin aConnectBegin )
Cette méthode initialise l'objet Service Manager.
Vous devez initialiser un objet Service Manager pour pouvoir l'utiliser. Une fois cette méthode appelée, les clients peuvent commencer à appeler connect(), lookup() et d'autres méthodes.
Détails | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||||||
Renvoie |
WEAVE_ERROR_INVALID_ARGUMENT si un argument de fonction n'est pas valide sinon, WEAVE_NO_ERROR.
|
lookup
WEAVE_ERROR lookup( uint64_t aServiceEp, HostPortList *outHostPortList )
Cette méthode recherche les informations d'annuaire pour un point de terminaison de service.
Si le répertoire de service a été résolu, c'est-à-dire si une opération connect() a abouti, cette méthode renseigne l'objet HostPortList fourni.
Remarque: HostPortList est lié à l'objet WeaveServiceManager. il reste valide jusqu'à ce que le cache du répertoire de service soit vidé ou jusqu'à ce qu'une autre recherche dans le répertoire de service se produise.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
lookup
WEAVE_ERROR lookup( uint64_t aServiceEp, uint8_t *aControlByte, uint8_t **aDirectoryEntry )
Cette méthode recherche les informations d'annuaire pour un point de terminaison de service.
Si l'annuaire du service a été résolu, c'est-à-dire si une opération connect() a abouti, cette méthode renvoie une entrée de répertoire en fonction d'un identifiant de point de terminaison du service.
Cette méthode expose les détails de l'implémentation interne de l'annuaire de services. Il est fortement recommandé d'utiliser la variante de cette méthode qui génère la liste HostPortList.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
onConnectionClosed
void onConnectionClosed( WEAVE_ERROR aError )
Cette méthode gère l'événement de fermeture de connexion signalé par le contexte de l'échange Weave associé.
Détails | |||
---|---|---|---|
Paramètres |
|
onConnectionComplete
void onConnectionComplete( WEAVE_ERROR aError )
Cette méthode gère l'événement de connexion terminée pour la transaction de requête de point de terminaison du service.
Il y a plusieurs possibilités. Tout d'abord, la connexion aurait pu échouer, où nous avons terminé. Sinon, la connexion est réellement terminée et nous voulons ouvrir un contexte d'échange et envoyer une requête de répertoire.
Détails | |||
---|---|---|---|
Paramètres |
|
onResponseReceived
void onResponseReceived( uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg )
Cette méthode gère tout message de réponse dans la conversation avec le service d'annuaire.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
onResponseTimeout
void onResponseTimeout( void )
Cette méthode gère l'événement de délai d'inactivité dans lequel le service d'annuaire n'a reçu aucune réponse.
relocaliser
void relocate( WEAVE_ERROR aError )
Cette méthode déplace le cache du répertoire de service.
Lorsqu'un point de terminaison de service renvoie un rapport d'état avec le code d'état kStatus_Relocalized, l'application peut appeler unresolve() pour vider le cache et annuler les demandes de connexion. Cette méthode simplifie la gestion des erreurs en appelant unresolve() pour la première fois, puis reset() si le problème n'est pas encore résolu.
Cette version de la méthode, utilisée ici pour assurer la rétrocompatibilité, accepte et consigne une erreur, puis appelle relocate(void) .
Détails | |||
---|---|---|---|
Paramètres |
|
relocate(void)
relocaliser
void relocate( void )
Cette méthode déplace le cache du répertoire de service.
Lorsqu'un point de terminaison de service renvoie un rapport d'état avec le code d'état kStatus_Relocalized, l'application peut appeler unresolve() pour vider le cache et annuler les demandes de connexion. Cette méthode simplifie la gestion des erreurs en appelant unresolve() pour la première fois, puis reset() si le problème n'est pas encore résolu.
Voir aussi:relocate(WEAVE_ERROR)
replaceOrAddCacheEntry
WEAVE_ERROR replaceOrAddCacheEntry( uint16_t port, const char *hostName, uint8_t hostLen, uint64_t serviceEndpointId )
Ajoutez l'entrée de remplacement d'un nom d'hôte et d'un ID de port au début de la liste des répertoires.
réinitialiser
void reset( WEAVE_ERROR aError )
Cette méthode rétablit l'état initial du gestionnaire de services.
Cette méthode réinitialise tous les états du gestionnaire de service, y compris l'état des communications, l'état du cache et l'état des demandes de connexion en attente.
Cette version de la méthode, utilisée ici pour assurer la rétrocompatibilité, accepte et consigne une erreur, puis appelle reset(void) .
Détails | |||
---|---|---|---|
Paramètres |
|
reset(void)
réinitialiser
void reset( void )
Cette méthode rétablit l'état initial du gestionnaire de services.
Cette méthode réinitialise tous les états du gestionnaire de service, y compris l'état des communications, l'état du cache et l'état des demandes de connexion en attente.
Voir aussi:reset(WEAVE_ERROR)
non résolu
void unresolve( WEAVE_ERROR aError )
Cette méthode invalide le cache du répertoire de service.
Cette méthode définit l'état du cache de l'annuaire de services de sorte que, lors de la prochaine requête, le gestionnaire de services émette une requête d'annuaire de services.
Cette version de la méthode, utilisée ici pour assurer la rétrocompatibilité, accepte et consigne une erreur, puis appelle unresolve(void) .
Détails | |||
---|---|---|---|
Paramètres |
|
unresolve(void)
non résolu
void unresolve( void )
Cette méthode invalide le cache du répertoire de service.
Cette méthode définit l'état du cache de l'annuaire de services de sorte que, lors de la prochaine requête, le gestionnaire de services émette une requête d'annuaire de services.
Voir aussi:unresolve(WEAVE_ERROR)
~WeaveServiceManager
~WeaveServiceManager( void )
Cette méthode détruit l'instance WeaveServiceManager.