nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
Questa è una classe astratta.
#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
La classe del motore del protocollo WDM.
Riepilogo
Un'entità di gestione dei dati, un cliente o un publisher, ha un componente Protocol Engine e un componente Data Manager. Questa classe astratta rappresenta le funzionalità comuni del motore di protocollo.
Eredità
Sottoclassi note direttamente:nl::Weave::Profiles::DataManagement_Legacy::DMClient
nl::Weave::Profiles::DataManagement_Legacy::DMPublisher
Costruttori e distruttori |
|
---|---|
ProtocolEngine(void)
|
|
~ProtocolEngine(void)
|
Attributi protetti |
|
---|---|
mBindingTable[kBindingTableSize]
|
ProtocolEngine ha una tabella vincolante che, se il motore è responsabile di qualsiasi cosa oltre alla semplice ricezione di notifiche di broadcast, probabilmente deve contenere almeno una voce.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Funzioni pubbliche |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Gestisci la conferma del completamento di una richiesta di associazione.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Gestire la conferma dell'esito negativo di una richiesta di associazione.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Richiedi un'associazione utilizzando un ID nodo peer e un indicatore di trasporto noti.
|
BindRequest(const uint64_t & aPeerNodeId)
|
Associa a un peer noto utilizzando il trasporto predefinito.
|
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
|
BindRequest(WeaveConnection *aConnection)
|
Richiedi un'associazione utilizzando una connessione Weave attiva.
|
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
|
virtual void
Gestisci un'indicazione che segnala che un'associazione non è riuscita.
|
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
|
virtual void
Gestisci un'indicazione che un'associazione è diventata incompleta.
|
Init(WeaveExchangeManager *aExchangeMgr)
|
virtual WEAVE_ERROR
|
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
|
virtual WEAVE_ERROR
|
UnbindRequest(const uint64_t & aPeerNodeId)
|
void
Richiedi l'annullamento e la rimozione di un'associazione dalla tabella di associazione.
|
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
|
void
Richiedi l'annullamento e la rimozione di un'associazione dalla tabella di associazione.
|
Funzioni protette |
|
---|---|
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)
|
Corsi |
|
---|---|
nl:: |
Attributi protetti
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine ha una tabella vincolante che, se il motore è responsabile di qualsiasi cosa oltre alla semplice ricezione di notifiche di broadcast, probabilmente deve contenere almeno una voce.
Le associazioni sono generalmente indicizzate tramite l'ID nodo. Ciò significa che ogni motore può avere solo una singola associazione a un determinato endpoint di servizio.
La specifica WDM ha questa nozione di "associazione predefinita" che è il luogo in cui vengono indirizzati i messaggi se non viene fornita una destinazione esplicita. Verrà utilizzata principalmente in dispositivi molto semplici con una singola associazione o un numero ridotto di associazioni e, per altri scopi, sarà solo la prima associazione formata.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Funzioni pubbliche
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Gestisci la conferma del completamento di una richiesta di associazione.
Una volta completata l'associazione, il motore di protocollo esamina la tabella delle transazioni e avvia le transazioni dipendenti da tale associazione.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR Se l'operazione è andata a buon fine. In caso contrario, restituisce un valore WEAVE_ERROR che indica l'impossibilità di avviare una transazione.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Gestire la conferma dell'esito negativo di una richiesta di associazione.
Quando una richiesta di associazione non va a buon fine, il motore di protocollo deve esaminare la tabella delle transazioni e tutte le transazioni non vanno a buon fine, a seconda dell'associazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Richiedi un'associazione utilizzando un ID nodo peer e un indicatore di trasporto noti.
Dati un ID nodo peer e una specifica di trasporto, questa richiesta configura un'associazione al peer. L'offerta richiederà il completamento aggiuntivo SOLO se il trasporto è TCP. Se è già presente un'associazione al peer, viene riutilizzata.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo o WEAVE_ERROR_NO_MEMORY se la tabella di associazione è piena. In caso contrario, restituisce un valore WEAVE_ERROR che indica un'errore di inizializzazione dell'associazione.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Associa a un peer noto utilizzando il trasporto predefinito.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR Se l'operazione è andata a buon fine. In caso contrario, restituisce un valore WEAVE_ERROR che indica l'errore dell'operazione di associazione.
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Richiedi un'associazione utilizzando una connessione Weave attiva.
È anche possibile stabilire un'associazione utilizzando una connessione esistente e aperta. Tieni presente che le associazioni stabilite in questo modo non richiedono alcun completamento aggiuntivo.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo o WEAVE_ERROR_NO_MEMORY se la tabella di associazione è piena. In caso contrario, restituisce un errore che indica un errore di avvio dell'associazione.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Gestisci un'indicazione che segnala che un'associazione non è riuscita.
Quando un'associazione diventa incompleta, ovvero quando la connessione viene chiusa per un'associazione TCP, il motore di protocollo deve avere esito negativo per tutte le transazioni che dipendono da questo, inclusa la chiamata dei relativi gestori di stato. Inoltre, l'indicazione incompleta viene passata a qualsiasi oggetto della superclasse che implementa la forma alternativa di questo metodo che accetta un ID peer.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Gestisci un'indicazione che un'associazione è diventata incompleta.
I livelli superiori che devono essere informati di un errore dell'associazione devono utilizzare questo metodo, che si limita a trasmettere l'ID peer insieme a un report di stato. Infatti, poiché questo metodo è virtuale, qualsiasi sottoclasse DMClient o DMPublisher deve fornire un'implementazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
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 )
Richiedi l'annullamento e la rimozione di un'associazione dalla tabella di associazione.
Quando un'associazione viene "slegata" e tutte le transazioni che dipendono da esso. Questo metodo finalizza automaticamente tutte le transazioni con questa associazione.
Dettagli | |||
---|---|---|---|
Parametri |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Richiedi l'annullamento e la rimozione di un'associazione dalla tabella di associazione.
Quando un'associazione viene "slegata" e tutte le transazioni che dipendono da esso. Questo metodo finalizza automaticamente tutte le transazioni con questa associazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
Funzioni protette
Cancella
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 )
Finalizza
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 )