nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine

Il s'agit d'une classe abstraite.

#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>

Classe de moteur de protocole WDM.

Résumé

Une entité de gestion des données (client ou éditeur) comporte un composant de moteur de protocole et un composant de gestionnaire de données. Cette classe abstraite représente les fonctionnalités communes du moteur de protocoles.

Héritage

Sous-classes directes connues:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Constructeurs et destructeurs

ProtocolEngine(void)
~ProtocolEngine(void)

Attributs protégés

mBindingTable[kBindingTableSize]
ProtocolEngine comporte une table de liaison qui, si le moteur doit être responsable de quelque chose au-delà de la simple réception de notifications de diffusion, doit probablement contenir au moins une entrée.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

Fonctions publiques

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
Gérez la confirmation qu'une demande de liaison a bien été exécutée.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Gérez la confirmation qu'une requête de liaison a échoué.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Demandez une liaison à l'aide d'un ID de nœud pair connu et d'un spécificateur de transport.
BindRequest(const uint64_t & aPeerNodeId)
Associer à un pair connu à l'aide du transport par défaut.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Demandez une liaison à l'aide d'une connexion Weave active.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Gérer une indication qu'une liaison a échoué
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Gérer une indication qu'une liaison est devenue incomplète
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
Demande l'annulation d'une liaison et sa suppression de la table des liaisons.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Demande l'annulation d'une liaison et sa suppression de la table des liaisons.

Fonctions protégées

Clear(void)
void
ClearBindingTable(void)
void
ClearTransactionTable(void)
void
DequeueTransaction(DMTransaction *aTransaction)
void
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction(DMTransaction *aTransaction)
FailTransactions(Binding *aBinding, StatusReport & aReport)
bool
Finalize(void)
virtual void
FinalizeBindingTable(void)
void
FinalizeTransactionTable(void)
void
FinalizeTransactions(Binding *aBinding)
void
FromExchangeCtx(ExchangeContext *aExchangeCtx)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Classes

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

Attributs protégés

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine comporte une table de liaison qui, si le moteur doit être responsable de quelque chose au-delà de la simple réception de notifications de diffusion, doit probablement contenir au moins une entrée.

Les liaisons sont généralement indexées par ID de nœud. Cela signifie que chaque moteur ne peut avoir qu'une seule liaison à un point de terminaison de service donné.

La spécification WDM utilise cette notion de "liaison par défaut" c'est-à-dire l'emplacement vers lequel les messages sont envoyés si aucune destination explicite n'est fournie. Ce procédé sera principalement utilisé dans les appareils très simples avec une seule liaison ou un petit nombre de liaisons. À d'autres fins, il ne s'agira que de la première liaison formée.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Fonctions publiques

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Gérez la confirmation qu'une demande de liaison a bien été exécutée.

Lorsqu'une liaison est terminée, le moteur de protocole parcourt la table des transactions et lance toutes les transactions qui en dépendent.

Détails
Paramètres
[in] aBinding
Pointeur vers la liaison terminée.
Renvoie
WEAVE_NO_ERROR En cas de réussite. Sinon, renvoyez une erreur WEAVE_ERROR reflétant l'impossibilité de démarrer une transaction.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

Gérez la confirmation qu'une requête de liaison a échoué.

Lorsqu'une requête de liaison échoue, le moteur de protocole doit parcourir la table des transactions et faire échouer toutes les transactions en fonction de la liaison.

Détails
Paramètres
[in] aBinding
Pointeur vers la liaison ayant échoué.
[in] aReport
Référence à un objet StatusReport détaillant le motif de l'échec.
Renvoie

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Demandez une liaison à l'aide d'un ID de nœud pair connu et d'un spécificateur de transport.

Avec un ID de nœud pair et une spécification de transport, cette requête configure une liaison avec ce pair. L'enchère nécessitera des informations supplémentaires UNIQUEMENT si le transport est TCP. Si une liaison avec le pair est déjà présente, elle est réutilisée.

Détails
Paramètres
[in] aPeerNodeId
Référence à l'ID de nœud de 64 bits de l'entité homologue qui est la cible de la liaison.
[in] aTransport
Transport à utiliser.
Renvoie
WEAVE_NO_ERROR en cas de réussite ou WEAVE_ERROR_NO_MEMORY si la table de liaison est pleine. Sinon, renvoyez une erreur WEAVE_ERROR reflétant un échec d'initialisation de la liaison.
Voir aussi:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Associer à un pair connu à l'aide du transport par défaut.

Détails
Paramètres
[in] aPeerNodeId
Référence à l'ID de nœud de 64 bits de l'entité homologue qui est la cible de la liaison.
Renvoie
WEAVE_NO_ERROR En cas de réussite. Sinon, renvoyez une erreur WEAVE_ERROR reflétant l'échec de l'opération de liaison.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Demandez une liaison à l'aide d'une connexion Weave active.

Une liaison peut également être établie à l'aide d'une connexion existante et ouverte. Notez que les liaisons établies de cette manière ne nécessitent aucune complétion supplémentaire.

Détails
Paramètres
[in] aConnection
Pointeur vers une connexion Weave à utiliser par la liaison.
Renvoie
WEAVE_NO_ERROR en cas de réussite ou WEAVE_ERROR_NO_MEMORY si la table de liaison est pleine. Sinon, renvoyez une erreur reflétant l'échec de l'initialisation de la liaison.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Gérer une indication qu'une liaison a échoué

Lorsqu'une liaison devient incomplète, c'est-à-dire lorsque la connexion est fermée pour une liaison TCP, le moteur de protocole doit faire échouer toutes les transactions qui en dépendent, ce qui implique d'appeler ses gestionnaires d'état. En outre, l'indication incomplète est transmise à tout objet de super-classe mettant en œuvre la forme alternative de cette méthode qui utilise un ID de pair.

Détails
Paramètres
[in] aBinding
Pointeur vers la liaison ayant échoué.
[in] aReport
Référence à un objet StatusReport détaillant le motif de l'échec.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

Gérer une indication qu'une liaison est devenue incomplète

Les couches supérieures qui souhaitent être informées de l'échec de la liaison doivent utiliser cette méthode, qui transmet simplement l'ID du pair avec un rapport d'état. Étant donné que cette méthode est virtuelle vide, toute sous-classe DMClient ou DMPublisher doit fournir une implémentation.

Détails
Paramètres
[in] aPeerNodeId
Référence à l'ID 64 bits du nœud pair ou du point de terminaison du service qui est la cible de la liaison ayant échoué.
[in] aReport
Référence à un objet StatusReport détaillant le motif de l'échec.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Demande l'annulation d'une liaison et sa suppression de la table des liaisons.

Lorsqu'une liaison est "non liée" toutes les transactions qui en dépendent actuellement doivent également être supprimées. Cette méthode finalise automatiquement toutes les transactions avec cette liaison.

Détails
Paramètres
[in] aPeerNodeId
Référence à l'ID de nœud de 64 bits ou au point de terminaison du service qui identifie la liaison.
Voir aussi:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Demande l'annulation d'une liaison et sa suppression de la table des liaisons.

Lorsqu'une liaison est "non liée" toutes les transactions qui en dépendent actuellement doivent également être supprimées. Cette méthode finalise automatiquement toutes les transactions avec cette liaison.

Détails
Paramètres
[in] aPeerNodeId
Référence à l'ID de nœud de 64 bits ou au point de terminaison du service qui identifie la liaison.
[in] aErr
WEAVE_NO_ERROR s'il n'y a pas de raison spécifique à cette demande de dissociation, sinon la cause de l'erreur sera transmise.
Voir aussi:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Fonctions protégées

Effacer

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Finaliser

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)