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)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
Classes |
|
---|---|
nl:: |
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 |
|
||
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 |
|
||||
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 |
|
||||
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.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Associer à un pair connu à l'aide du transport par défaut.
Détails | |||
---|---|---|---|
Paramètres |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|
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 |
|
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 )