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)
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 è 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
[in] aBinding
Un puntatore all'associazione completata.
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
[in] aBinding
Un puntatore all'associazione non riuscita.
[in] aReport
Un riferimento a un oggetto StatusReport che descrive in 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 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
[in] aPeerNodeId
Un riferimento all'ID nodo a 64 bit dell'entità peer che è la destinazione dell'associazione.
[in] aTransport
Il mezzo di 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, restituisce un valore 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 è la destinazione dell'associazione.
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
[in] aConnection
Un puntatore a una connessione Weave che venga utilizzata 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, 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
[in] aBinding
Un puntatore all'associazione non riuscita.
[in] aReport
Un riferimento a un oggetto StatusReport che descrive in 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 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
[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 in dettaglio il motivo dell'errore.

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
[in] aPeerNodeId
Un riferimento all'ID nodo a 64 bit o all'endpoint di servizio 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 viene "slegata" e tutte le transazioni che dipendono da esso. Questo metodo finalizza automaticamente tutte le transazioni con questa associazione.

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

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)