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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Corsi

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

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
[in] aBinding
Un puntatore all'associazione completata.
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
[in] aBinding
Un puntatore all'associazione non riuscita.
[in] aReport
Un riferimento a un oggetto StatusReport che descrive nel dettaglio il motivo dell'errore.
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
[in] aPeerNodeId
Un riferimento all'ID nodo a 64 bit dell'entità peer che rappresenta la destinazione dell'associazione.
[in] aTransport
Il trasporto da utilizzare.
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.
Vedi anche:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Associa a un peer noto utilizzando il trasporto predefinito.

Dettagli
Parametri
[in] aPeerNodeId
Un riferimento all'ID nodo a 64 bit dell'entità peer che rappresenta la destinazione dell'associazione.
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
[in] aConnection
Un puntatore a una connessione Weave che deve essere utilizzato dall'associazione.
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
[in] aBinding
Un puntatore all'associazione non riuscita.
[in] aReport
Un riferimento a un oggetto StatusReport che descrive nel dettaglio il motivo dell'errore.

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
[in] aPeerNodeId
Un riferimento all'ID a 64 bit del nodo peer o dell'endpoint di servizio che è la destinazione dell'associazione non riuscita.
[in] aReport
Un riferimento a un oggetto StatusReport che descrive nel dettaglio il motivo dell'errore.

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
[in] aPeerNodeId
Un riferimento all'ID nodo o all'endpoint di servizio a 64 bit che identifica l'associazione.
Vedi anche:
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
[in] aPeerNodeId
Un riferimento all'ID nodo o all'endpoint di servizio a 64 bit che identifica l'associazione.
[in] aErr
WEAVE_NO_ERROR se non esiste un motivo specifico per l'annullamento dell'associazione della richiesta, altrimenti la causa dell'errore verrà comunicata.
Vedi anche:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)