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 corre ces options et les organise de manière à faciliter les choses et les plus difficiles à exploiter. Les options disponibles sont les suivantes:
- une communication UDP unicast avec un nœud pair connu.
- Diffusion UDP avec "n'importe quel" nœud.
- une communication WRMP unicast avec un nœud pair connu.
- les communications TCP avec un nœud pair connu.
- les communications TCP avec un point de terminaison de service connu à l'aide d'une instance de gestionnaire de service pour la configuration.
- les 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 des objets Binding.
|
Types publics |
|
---|---|
@165{
|
enum Ensemble des états de l'objet Binding. |
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 associé à 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érer la confirmation d'une requête de liaison
|
CompleteConfirm(StatusReport & aReport)
|
void
Gérer l'échec d'une requête de liaison
|
CompleteConfirm(void)
|
void
Gérer la confirmation d'une requête de liaison
|
CompleteRequest(ProtocolEngine *aEngine)
|
Demander la finalisation d'une liaison.
|
Connect(WeaveConnection *aConnection)
|
Effectuez une liaison TCP en fournissant une connexion terminée.
|
Finalize(void)
|
void
« Incomplète » une liaison et la libérer.
|
Finalize(WEAVE_ERROR aErr)
|
void
« Incomplète » 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érer l'échec d'une liaison
|
Init(const uint64_t & aPeerNodeId)
|
Initialisez une liaison avec seulement un ID de nœud.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Initialisez un objet Binding en fonction de l'ID d'appairage et du transport.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Initialisez un objet Liaison sur un point de terminaison de service.
|
Init(WeaveConnection *aConnection)
|
Initialisez un objet Binding avec une WeaveConnection.
|
IsComplete(void)
|
bool
Vérifiez si une liaison est terminée.
|
IsFree(void)
|
bool
Vérifiez qu'une liaison est sans frais.
|
UncompleteRequest(void)
|
void
Entraîne l'incapacité d'une liaison.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Entraîne l'incapacité d'une liaison.
|
Types publics
@165
@165
Ensemble des états de l'objet Binding.
Propriétés | |
---|---|
kState_Complete
|
État d'une liaison terminée et prête à l'emploi. |
kState_Completing
|
État d'une liaison en cours d'exécution. |
kState_Incomplete
|
État initial (et final) d'une liaison. |
Attributs publics
mAuthMode
WeaveAuthMode mAuthMode
Mode d'authentification Weave à utiliser.
(LECTURE_SEULE)
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 en allouant une au moment de la finalisation.
mEngine
ProtocolEngine * mEngine
Pointeur vers l'objet ProtocolEngine associé à cette liaison.
Une liaison est généralement réalisée par rapport à un moteur de protocole particulier, principalement utilisé pour accéder à MessageLayer. C'est ici que nous en assurons le suivi.
mPeerNodeId
uint64_t mPeerNodeId
ID de nœud de 64 bits de la cible de liaison.
(LECTURE SEULE)
Chaque liaison possède une entité cible, nommée ici. En plus de l'ID de nœud Weave, vous pouvez 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 64 bits peut être fourni au moment de l'initialisation à la place de l'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 opération "complete" peut être exécutée à la fois. 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érer la confirmation d'une requête de liaison
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Gérer l'échec d'une requête de liaison
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm
void CompleteConfirm( void )
Gérer la confirmation d'une requête de liaison
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Demander la finalisation d'une liaison.
L'achèvement d'une liaison, au moins pour les liaisons nécessitant TCP, est réalisé par rapport à un objet ProtocolEngine particulier, qui donne accès à une instance ExchangeManager.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
||||||
Renvoie |
Sinon, toute erreur WEAVE_ERROR est renvoyée lors de la tentative de connexion.
|
Associer
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Effectuez 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 est effectuée à la demande lorsque l'application tente d'utiliser la liaison pour envoyer des messages, mais elle peut également être explicitement effectuée en fournissant une connexion Weave.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
Finaliser
void Finalize( void )
« Incomplète » une liaison et la libérer.
Les liaisons peuvent avoir un état qui doit être nettoyé, par exemple une fermeture de connexion gérée par la méthode Uncomplete(), en plus d'un état qui est simplement rétabli à son état initial par la méthode Free(). Cette méthode, essentiellement par souci de commodité, invoque les deux.
Voir aussi:Finalize(WEAVE_ERROR)
Finaliser
void Finalize( WEAVE_ERROR aErr )
« Incomplète » une liaison et la libérer.
Les liaisons peuvent avoir un état qui doit être nettoyé, par exemple une fermeture de connexion gérée par la méthode Uncomplete(), en plus d'un état qui est simplement rétabli à son état initial par la méthode Free(). Cette méthode, essentiellement par souci de commodité, invoque les deux.
Détails | |||
---|---|---|---|
Paramètres |
|
Finalize(void)
Sans frais
void Free( void )
Effacez l'état de liaison.
Renvoyer 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 liaison.
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érer l'échec d'une liaison
Cette méthode est appelée et, à son tour, appelle des gestionnaires de couche supérieure lorsque la liaison échoue APRÈS l'achèvement, c'est-à-dire après l'appel de CompleteConfirm() dont l'état indique la réussite.
Détails | |||
---|---|---|---|
Paramètres |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Initialisez une liaison avec seulement un ID de nœud.
Cela se traduit par une liaison avec le transport par défaut configuré.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Initialisez un objet Binding en fonction de l'ID d'appairage et du transport.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Initialisez un objet Liaison sur un point de terminaison de service.
Il vous permet de vous associer à un point de terminaison spécifique dans le service Nest. Une liaison de ce type nécessite un processus d'exécution en plusieurs étapes, qui peut inclure le remplissage ou la mise à jour du cache du répertoire de services local. La plupart du temps, ce processus est masqué pour l'application, mais cela signifie que les erreurs survenant plus tard dans le processus peuvent être transmises, normalement via le rappel de confirmation approprié, après, parfois longtemps après, la requête initiale pour utiliser (et terminer) la liaison.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs de retour |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Initialisez un objet Binding avec une WeaveConnection.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs de retour |
|
IsComplete
bool IsComplete( void )
Vérifiez si une liaison est terminée.
Détails | |
---|---|
Renvoie |
"true" s'il est terminé, "false" dans le cas contraire.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Vérifiez qu'une liaison est sans frais.
Dans ce contexte, "Sans frais" signifie simplement "dispose d'un ID de nœud pair défini". IsFree() doit être considéré comme un message indiquant que Free() a été appelé et n'a pas été utilisé depuis.
Détails | |
---|---|
Renvoie |
"true" si la liaison est libre, ou "false" dans le cas contraire.
|
UncompleteRequest
void UncompleteRequest( void )
Entraîne l'incapacité d'une liaison.
Fondamentalement, une liaison doit être à l'état "incomplet" après que cette méthode a été appelée sur elle, mais, plus subtilement, tout état pertinent ne figurant pas dans la liaison elle-même, par exemple une connexion TCP, doit également être nettoyé. Les applications peuvent envisager d'appeler UncompleteRequest() dans le cadre du nettoyage en cas d'erreur.
Voir aussi:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Entraîne l'incapacité d'une liaison.
Fondamentalement, une liaison doit être à l'état "incomplet" après que cette méthode a été appelée sur elle, mais, plus subtilement, tout état pertinent ne figurant pas dans la liaison elle-même, par exemple une connexion TCP, doit également être nettoyé. Les applications peuvent envisager d'appeler UncompleteRequest() dans le cadre du nettoyage en cas d'erreur.
Détails | |||
---|---|---|---|
Paramètres |
|
UncompleteRequest(void)
~Liaison
virtual ~Binding( void )
Destructeur des objets Binding.
Efface tout l'état interne ET, si nécessaire, ferme les connexions ouvertes.