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{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
é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
[in] aConnection
Un pointeur vers une WeaveConnection active sur la cible de la liaison.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Gérez l'échec d'une requête de liaison.

Détails
Paramètres
[in] aReport
Référence à un objet StatusReport décrivant l'échec.

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
[in] aEngine
Pointeur vers un objet ProtocolEngine au nom duquel la saisie semi-automatique est effectuée.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
si la liaison est déjà en cours.
WEAVE_ERROR_NO_MEMORY
Si une connexion est requise et qu'aucune n'est disponible
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
[in] aConnection
Un pointeur vers une ressource WeaveConnection utilisée pour effectuer la liaison.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
Si la liaison possède déjà une connexion.
WEAVE_ERROR_INVALID_ARGUMENT
Si la connexion est NULL.

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
[in] aErr
Ce code d'erreur indique la cause de cette requête. Si ce n'est pas le cas de WEAVE_NO_ERROR, la connexion TCP peut être interrompue.
Voir aussi:
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
[in] aExchangeMgr
Pointeur vers le gestionnaire de places de marché à partir duquel demander un contexte.
[in] aAppState
Pointeur vide vers un objet d'état d'application à stocker dans le contexte de l'échange pour une utilisation ultérieure.
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
[in] aReport
Référence à un rapport d'état décrivant le problème.
Voir aussi:
CompleteConfirm(StatusReport &amp;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
[in] aPeerNodeId
Référence à l'ID 64 bits de la cible de liaison.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si la liaison est sous-spécifiée.

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
[in] aPeerNodeId
Référence à l'identifiant de nœud 64 bits de la cible de liaison.
[in] aTransport
Spécification de transport, provenant de WeaveTransportOption.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si la liaison est sous-spécifiée.

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
[in] aServiceEpt
Référence à l'identifiant 64 bits du point de terminaison Weave Service qui vous intéresse.
[in] aServiceMgr
Pointeur vers l'instance Service Manager à utiliser pour rechercher un niveau de service et s'y connecter.
[in] aAuthMode
Mode d'authentification à utiliser pour la connexion.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si la liaison est sous-spécifiée.

Init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Initialisez un objet Binding avec un WeaveConnection.

Détails
Paramètres
[in] aConnection
Pointeur vers une classe WeaveConnection à utiliser comme base pour la liaison.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INVALID_ARGUMENT
Si la liaison est sous-spécifiée.

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.
Voir aussi:
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 &quot;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
[in] aErr
Si ce n'est pas le cas WEAVE_NO_ERROR, la connexion existante, le cas échéant, sera abandonnée au lieu d'être fermée normalement.
Voir aussi:
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.