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 del motore di protocollo e un componente del gestore di dati. Questa classe astratta rappresenta le funzionalità comuni del motore di protocollo.
Eredità
Sottoclassi note dirette: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 sarà responsabile di qualcosa oltre alla semplice ricezione di notifiche di trasmissione, probabilmente deve contenere almeno una voce.
|
mExchangeMgr
|
|
mResponseTimeout
|
uint32_t
|
mTransactionTable[kTransactionTableSize]
|
Funzioni pubbliche |
|
---|---|
BindConfirm(Binding *aBinding)
|
virtual WEAVE_ERROR
Gestisci la conferma che una richiesta di associazione è stata completata correttamente.
|
BindConfirm(Binding *aBinding, StatusReport & aReport)
|
virtual WEAVE_ERROR
Gestisci la conferma che una richiesta di associazione non è andata a buon fine.
|
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Richiedi un'associazione utilizzando un ID nodo peer noto e un specificatore di trasporto.
|
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 l'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 sarà responsabile di qualcosa oltre alla semplice ricezione di notifiche di trasmissione, probabilmente deve contenere almeno una voce.
Le associazioni sono generalmente indicizzate in base all'ID nodo. Ciò significa che ogni motore può avere una sola associazione a un determinato endpoint di servizio.
La specifica WDM ha questa nozione di "associazione predefinita", ovvero il luogo a cui vengono inviati 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 che una richiesta di associazione è stata completata correttamente.
Una volta completata un'associazione, il motore di protocollo passa attraverso la tabella delle transazioni e avvia le transazioni dipendenti dall'associazione.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
WEAVE_NO_ERROR In caso di esito positivo. In caso contrario, restituisci un WEAVE_ERROR che indica l'impossibilità di avviare una transazione.
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Gestisci la conferma che una richiesta di associazione non è andata a buon fine.
Quando una richiesta di associazione non va a buon fine, il motore di protocollo deve passare attraverso la tabella delle transazioni e non riuscire a completare alcuna transazione, 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 noto e un specificatore di trasporto.
Dati un ID nodo peer e una specifica di trasporto, questa richiesta imposta un'associazione con il peer. Le offerte richiedono un completamento aggiuntivo SOLO se il trasporto è TCP. Se è già presente un'associazione con il peer, questa 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, restituisci un 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 In caso di esito positivo. In caso contrario, restituisci un valore WEAVE_ERROR che rifletta 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.
Un'associazione può anche essere stabilita 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, viene restituito un errore che indica un errore di inizializzazione dell'associazione.
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Gestisci un'indicazione che l'associazione non è riuscita.
Quando un'associazione diventa incompleta, ovvero quando la connessione viene chiusa per un'associazione TCP, il motore di protocollo non riesce a completare tutte le transazioni dipendenti da quest'ultima, incluse le chiamate ai relativi gestori di stato. Inoltre, l'indicazione incompleta viene passata a qualsiasi oggetto 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 vogliono essere informati dell'errore di associazione dovrebbero utilizzare questo metodo, che trasmette semplicemente l'ID peer insieme a un report sullo stato. Infatti, poiché questo metodo è virtuale void, qualsiasi sottoclasse DMClient o DMPublisher deve fornire un'implementazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Inizia
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
Inizia
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 è "svincolata", devono essere rimosse anche tutte le transazioni che attualmente dipendono da questa associazione. 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 è "svincolata", devono essere rimosse anche tutte le transazioni che attualmente dipendono da questa associazione. Questo metodo finalizza automaticamente tutte le transazioni con questa associazione.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
UnbindRequest(const uint64_t)
~Motore di protocollo
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 )