nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
La classe Binding gère l'état des communications pour le compte d'une entité d'application à l'aide de Weave.
Résumé
Lorsqu'une application souhaite utiliser Weave pour communiquer avec une entité distante, il existe de nombreuses options. La classe Binding regroupe ces options et les organise de telle sorte que les opérations les plus simples soient faciles et les plus difficiles, au moins, de manière à pouvoir être gérables. Les options couvertes sont les suivantes:
- la communication UDP unicast avec un nœud pair connu.
- Diffusion UDP avec "any" d'un nœud.
- la communication WRMP unicast avec un nœud pair connu.
- les communications TCP avec un nœud pair connu.
- Communications TCP avec un point de terminaison de service connu à l'aide d'une instance de gestionnaire de service pour configurer les éléments.
- Communications TCP basées sur une connexion préétablie.
Constructeurs et destructeurs |
|
---|---|
Binding(void)
Constructeur par défaut pour les objets Binding.
|
|
~Binding(void)
Destructeur pour les objets de liaison.
|
Types publics |
|
---|---|
@165{
|
énum Ensemble des états de l'objet Binding (Liaison). |
Attributs publics |
|
---|---|
mAuthMode
|
WeaveAuthMode
Mode d'authentification Weave à utiliser.
|
mConnection
|
Pointeur vers la connexion Weave actuellement utilisée dans cette liaison.
|
mEngine
|
Pointeur vers l'objet ProtocolEngine lié à cette liaison.
|
mPeerNodeId
|
uint64_t
ID de nœud de 64 bits de la cible de liaison.
|
mServiceMgr
|
Pointeur vers l'objet ServiceManager (facultatif) à utiliser pour effectuer cette liaison.
|
mState
|
uint8_t
État actuel de l'objet Binding.
|
mTransport
|
uint8_t
Transport à utiliser pour effectuer cette liaison.
|
Fonctions publiques |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Gérez la confirmation d'une requête de liaison.
|
CompleteConfirm(StatusReport & aReport)
|
void
Gérez l'échec d'une requête de liaison.
|
CompleteConfirm(void)
|
void
Gérez la confirmation d'une requête de liaison.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Demande l'achèvement d'une liaison.
|
Connect(WeaveConnection *aConnection)
|
Terminez une liaison TCP en fournissant une connexion terminée.
|
Finalize(void)
|
void
"Incomplet" une liaison et la libérer.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Incomplet" une liaison et la libérer.
|
Free(void)
|
void
Effacez l'état de liaison.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Produisez un objet ExchangeContext à partir d'une liaison.
|
IncompleteIndication(StatusReport & aReport)
|
void
Gérez l'échec d'une liaison.
|
Init(const uint64_t & aPeerNodeId)
|
Initialisez une liaison avec un simple ID de nœud.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Initialisez un objet Binding en fonction de l'ID du pair et du transport.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Initialisez un objet Binding sur un point de terminaison de service.
|
Init(WeaveConnection *aConnection)
|
Initialisez un objet Binding avec un WeaveConnection.
|
IsComplete(void)
|
bool
Vérifiez si une liaison est terminée.
|
IsFree(void)
|
bool
La vérification est sans frais.
|
UncompleteRequest(void)
|
void
Entraîne l'incomplète d'une liaison.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Entraîne l'incomplète d'une liaison.
|
Types publics
@165
@165
Ensemble des états de l'objet Binding (Liaison).
Propriétés | |
---|---|
kState_Complete
|
État d'une liaison terminée et prête à être utilisée. |
kState_Completing
|
État d'une liaison en cours de finalisation. |
kState_Incomplete
|
État initial (et final) d'une liaison. |
Attributs publics
mAuthMode
WeaveAuthMode mAuthMode
Mode d'authentification Weave à utiliser.
(READ_ONLY)
Il s'agit du mode d'authentification utilisé dans toutes les communications régies par cette liaison.
mConnection
WeaveConnection * mConnection
Pointeur vers la connexion Weave actuellement utilisée dans cette liaison.
(LECTURE SEULE)
Les liaisons TCP peuvent être initialisées avec une connexion dès le départ ou peuvent en allouer une au moment de la fin.
mEngine
ProtocolEngine * mEngine
Pointeur vers l'objet ProtocolEngine lié à cette liaison.
Une liaison est généralement réalisée en fonction d'un moteur de protocole particulier, qui est principalement utilisé comme moyen d'accès à MessageLayer. C'est là que nous en faisons le suivi.
mPeerNodeId
uint64_t mPeerNodeId
ID de nœud de 64 bits de la cible de liaison.
(LECTURE SEULE)
Chaque Binding a une entité cible, qui est nommée ici. En plus d'un ID de nœud Weave, ce nom peut nommer un point de terminaison de service.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Pointeur vers l'objet ServiceManager (facultatif) à utiliser pour effectuer cette liaison.
(LECTURE SEULE)
Lors de la liaison au service Weave, un ID de point de terminaison de service de 64 bits peut être fourni au moment de l'initialisation à la place d'un ID de nœud Weave. Dans ce cas, un objet ServiceManager est également requis pour effectuer la liaison. Les liaisons TCP ou WRMP normales ne nécessitent pas d'objet ServiceManager.
mState
uint8_t mState
État actuel de l'objet Binding.
Une seule instruction "terminée" peut s'exécuter à la fois et, dans tous les cas, si vous demandez à terminer une liaison terminée, elle appelle immédiatement la fonction de confirmation. La variable d'état ci-dessous suit l'état actuel et agit comme un verrouillage.
mTransport
uint8_t mTransport
Transport à utiliser pour effectuer cette liaison.
(LECTURE SEULE)
Les valeurs possibles pour mTransport sont définies dans DMConstants.h.
Fonctions publiques
Liaison
Binding( void )
Constructeur par défaut pour les objets Binding.
Efface tout l'état interne.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Gérez la confirmation d'une requête de liaison.
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Gérez l'échec d'une requête de liaison.
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm
void CompleteConfirm( void )
Gérez la confirmation d'une requête de liaison.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Demande l'achèvement d'une liaison.
L'achèvement d'une liaison est, du moins pour les liaisons nécessitant TCP, par rapport à un objet ProtocolEngine spécifique, qui donne accès à une instance ExchangeManager.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
||||||
Renvoie |
Dans le cas contraire, toute erreur WEAVE_ERROR est renvoyée lors de la tentative de connexion.
|
Connecter
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Terminez une liaison TCP en fournissant une connexion terminée.
Une liaison TCP nouvellement initialisée ne peut pas être utilisée tant qu'elle n'est pas terminée. Normalement, cette opération s'effectue à la demande lorsque l'application tente d'utiliser la liaison pour envoyer des messages, mais elle peut également être effectuée explicitement en fournissant une connexion Weave.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
Finaliser
void Finalize( void )
"Incomplet" une liaison et la libérer.
Les liaisons peuvent avoir un état qui nécessite un nettoyage, par exemple la fermeture de connexion, qui est gérée par la méthode Uncomplete() et l'état qui est simplement effacé de son état initial par la méthode Free(). Cette méthode, principalement à des fins de commodité, appelle les deux.
Voir aussi:Finaliser(WEAVE_ERROR)
Finaliser
void Finalize( WEAVE_ERROR aErr )
"Incomplet" une liaison et la libérer.
Les liaisons peuvent avoir un état qui nécessite un nettoyage, par exemple la fermeture de connexion, qui est gérée par la méthode Uncomplete() et l'état qui est simplement effacé à son état initial par la méthode Free(). Cette méthode, principalement à des fins de commodité, appelle les deux.
Détails | |||
---|---|---|---|
Paramètres |
|
Finaliser(vide)
Gratuit
void Free( void )
Effacez l'état de liaison.
Rétablissez sans condition tous les états de liaison à leur état d'origine.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produisez un objet ExchangeContext à partir d'une Binding.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Renvoie |
un pointeur vers un objet ExchangeContext, ou la valeur "NULL" en cas d'échec.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Gérez l'échec d'une liaison.
Cette méthode est appelée et appelle à son tour des gestionnaires de couche supérieure lorsque la liaison échoue APRÈS la fin, c'est-à-dire une fois que CompleteConfirm() a été appelé avec un état indiquant une réussite.
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm(StatusReport &aReport)
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Initialisez une liaison avec un seul ID de nœud.
Cela entraîne une liaison avec le transport par défaut configuré.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Initialisez un objet Binding en fonction de l'ID du pair et du transport.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Initialisez un objet Binding sur un point de terminaison de service.
C'est ainsi que vous créez une liaison avec un point de terminaison particulier du service Nest. Une liaison de ce type nécessite un processus d'achèvement en plusieurs étapes, qui peut inclure le remplissage ou la mise à jour du cache du répertoire de service local. Dans la plupart des cas, ce processus n'est pas visible dans l'application, mais les erreurs qui surviennent ultérieurement peuvent être transmises, normalement via la méthode de confirmation appropriée. rappel, après (parfois longtemps après) la requête initiale d'utilisation (et d'achèvement) de la liaison.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Initialisez un objet Binding avec un WeaveConnection.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
IsComplete
bool IsComplete( void )
Vérifiez si une liaison est terminée.
Détails | |
---|---|
Renvoie |
La valeur est "true" si elle est complète, et "false" dans le cas contraire.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
La vérification est sans frais.
"Sans frais" Dans ce contexte, cela signifie simplement "dispose d'un nœud pair défini "ID". IsFree() should be thought of as meaning "has had Free() et qu'elle n'est plus utilisée depuis."
Détails | |
---|---|
Renvoie |
"true" si la liaison est libre et "false" dans le cas contraire.
|
UncompleteRequest
void UncompleteRequest( void )
Entraîne l'incomplète d'une liaison.
Fondamentalement, une liaison doit figurer dans la partie "incomplet" après que cette méthode a été appelée, mais, plus subtilement, tout état pertinent non contenu dans la liaison elle-même, par exemple connexion TCP, doit également être nettoyée. Lors du nettoyage en cas d'erreur, les applications peuvent envisager d'appeler UncompleteRequest().
Voir aussi:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Entraîne l'incomplète d'une liaison.
Fondamentalement, une liaison doit figurer dans la partie "incomplet" après que cette méthode a été appelée, mais, plus subtilement, tout état pertinent non contenu dans la liaison elle-même, par exemple connexion TCP, doit également être nettoyée. Lors du nettoyage en cas d'erreur, les applications peuvent envisager d'appeler UncompleteRequest().
Détails | |||
---|---|---|---|
Paramètres |
|
UncompleteRequest(void)
~Liaison
virtual ~Binding( void )
Destructeur pour les objets Binding.
Efface tout l'état interne ET, le cas échéant, ferme les connexions ouvertes.