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

Esta es una clase abstracta.

#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>

La clase del motor del protocolo WDM.

Resumen

Una entidad de administración de datos, cliente o publicador, tiene un componente de motor de protocolo y un componente de administrador de datos. Esta clase abstracta representa las características comunes del motor de protocolos.

Herencia

Subclases directas conocidas:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Constructores y destructores

ProtocolEngine(void)
~ProtocolEngine(void)

Atributos protegidos

mBindingTable[kBindingTableSize]
ProtocolEngine tiene una tabla de vinculación que, si el motor será responsable de cualquier cosa más allá de solo recibir notificaciones de emisión, es probable que deba contener al menos una entrada.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

Funciones públicas

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
Controla la confirmación de que se completó correctamente una solicitud de vinculación.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Controla la confirmación de que una solicitud de vinculación falló.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Solicita una vinculación mediante un ID de nodo de intercambio de tráfico conocido y un especificador de transporte.
BindRequest(const uint64_t & aPeerNodeId)
Realiza la vinculación con un par conocido mediante el transporte predeterminado.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Solicita una vinculación mediante una conexión activa de Weave.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Controla una indicación de que una vinculación falló.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Controla una indicación de que una vinculación se volvió incompleta.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
Solicita que se deshaga una vinculación y se quite de la tabla de vinculaciones.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Solicita que se deshaga una vinculación y se quite de la tabla de vinculaciones.

Funciones protegidas

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)

Clases

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

Atributos protegidos

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine tiene una tabla de vinculación que, si el motor será responsable de cualquier cosa más allá de solo recibir notificaciones de emisión, es probable que deba contener al menos una entrada.

Por lo general, las vinculaciones se indexan por ID de nodo. Esto significa que cada motor solo puede tener una única vinculación a un extremo de servicio determinado.

La especificación WDM tiene esta noción de "vinculación predeterminada", que es el sitio al que se dirigen los mensajes si no se proporciona un destino explícito. Se usará en mayor medida en dispositivos muy simples con una sola vinculación o una pequeña cantidad de vinculaciones y, para otros fines, solo será la primera vinculación formada.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Funciones públicas

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Controla la confirmación de que se completó correctamente una solicitud de vinculación.

Una vez que se completa una vinculación, el motor del protocolo pasa por la tabla de transacciones e inicia todas las transacciones que dependen de esa vinculación.

Detalles
Parámetros
[in] aBinding
Un puntero para la vinculación completa.
Qué muestra
WEAVE_NO_ERROR Si la operación es exitosa. De lo contrario, muestra un WEAVE_ERROR que refleja la incapacidad para iniciar una transacción.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

Controla la confirmación de que una solicitud de vinculación falló.

Cuando falla una solicitud de vinculación, el motor de protocolos debe pasar por la tabla de transacciones y fallar todas las transacciones según la vinculación.

Detalles
Parámetros
[in] aBinding
Un puntero para la vinculación con errores.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.
Qué muestra

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Solicita una vinculación mediante un ID de nodo de intercambio de tráfico conocido y un especificador de transporte.

Con un ID de nodo de intercambio de tráfico y una especificación de transporte, esta solicitud configura una vinculación con ese intercambio de tráfico. La oferta requerirá una finalización adicional SOLO si el transporte es TCP. Si ya hay una vinculación al par, se vuelve a usar.

Detalles
Parámetros
[in] aPeerNodeId
Es una referencia al ID de nodo de 64 bits de la entidad de intercambio de tráfico que es el destino de vinculación.
[in] aTransport
Indica el transporte que se usará.
Qué muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si la tabla de vinculación está llena. De lo contrario, muestra un WEAVE_ERROR que refleja un error en la inicialización de la vinculación.
Consulta también:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Realiza la vinculación con un par conocido mediante el transporte predeterminado.

Detalles
Parámetros
[in] aPeerNodeId
Es una referencia al ID de nodo de 64 bits de la entidad de intercambio de tráfico que es el destino de vinculación.
Qué muestra
WEAVE_NO_ERROR Si la operación es exitosa. De lo contrario, muestra un WEAVE_ERROR que refleja la falla de la operación de vinculación.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Solicita una vinculación mediante una conexión activa de Weave.

Una vinculación también se puede establecer usando una conexión existente y abierta. Ten en cuenta que las vinculaciones que se establecen de esta manera no requieren una finalización adicional.

Detalles
Parámetros
[in] aConnection
Es un puntero a una conexión de Weave que usará la vinculación.
Qué muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si la tabla de vinculación está llena. De lo contrario, muestra un error que refleja una falla para iniciar la vinculación.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Controla una indicación de que una vinculación falló.

Cuando una vinculación se vuelve incompleta, es decir, cuando se cierra la conexión por una vinculación TCP, el motor de protocolo debe fallar en todas las transacciones que dependan de ella, lo que incluye llamar a sus controladores de estado. Además, la indicación incompleta se pasa a cualquier objeto de superclase que implemente la forma alternativa de este método que toma un ID de par.

Detalles
Parámetros
[in] aBinding
Un puntero para la vinculación con errores.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

Controla una indicación de que una vinculación se volvió incompleta.

Las capas superiores a las que se les debe informar sobre la falla de vinculación deben usar este método, que simplemente pasa el ID del par junto con un informe de estado. De hecho, como este método es nulo virtual, cualquier subclase DMClient o DMPublisher debe proporcionar una implementación.

Detalles
Parámetros
[in] aPeerNodeId
Una referencia al ID de 64 bits del nodo de intercambio de tráfico o el extremo del servicio que es el destino de la vinculación con errores.
[in] aReport
Una referencia a un objeto StatusReport que detalla el motivo del error.

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
)

Solicita que se deshaga una vinculación y se quite de la tabla de vinculaciones.

Cuando una vinculación es "no vinculada", también se deben quitar todas las transacciones que actualmente dependen de ella. Este método finaliza automáticamente todas las transacciones con esta vinculación.

Detalles
Parámetros
[in] aPeerNodeId
Es una referencia al extremo de servicio o ID de nodo de 64 bits que identifica la vinculación.
Consulta también:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Solicita que se deshaga una vinculación y se quite de la tabla de vinculaciones.

Cuando una vinculación es "no vinculada", también se deben quitar todas las transacciones que actualmente dependen de ella. Este método finaliza automáticamente todas las transacciones con esta vinculación.

Detalles
Parámetros
[in] aPeerNodeId
Es una referencia al extremo de servicio o ID de nodo de 64 bits que identifica la vinculación.
[in] aErr
WEAVE_NO_ERROR si no hay un motivo específico para esta solicitud de desvinculación; de lo contrario, se transmitirá la causa del error.
Consulta también:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Funciones protegidas

Borrar

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
)

Finalizar

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
)