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 de WDM.

Resumen

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

Herencia

Subclases conocidas directas:
  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 aspecto que no sea solo recibir notificaciones de transmisión, probablemente necesite 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 una solicitud de vinculación se completó correctamente.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Controla la confirmación de que falló una solicitud de vinculación.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Solicita una vinculación con un ID de nodo de intercambio de tráfico conocido y un especificador de transporte.
BindRequest(const uint64_t & aPeerNodeId)
Realizar la vinculación a un intercambio de tráfico 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 de Weave activa.
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 la quite de la tabla de vinculación.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Solicita que se deshaga una vinculación y se la quite de la tabla de vinculación.

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 aspecto que no sea solo recibir notificaciones de transmisión, probablemente necesite 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 de WDM contiene la noción de "vinculación predeterminada" que es el lugar al que se dirigen los mensajes si no se proporciona un destino explícito. Se usará principalmente 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 que se forme.

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 una solicitud de vinculación se completó correctamente.

Una vez que se completa una vinculación, el motor de protocolo revisa la tabla de transacciones e inicia cualquier transacción que dependa de esa vinculación.

Detalles
Parámetros
[in] aBinding
Un puntero para la vinculación completa.
Resultado que se muestra
WEAVE_NO_ERROR si la operación es exitosa. De lo contrario, muestra un WEAVE_ERROR que refleja la imposibilidad de iniciar una transacción.

BindConfirm

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

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

Cuando falla una solicitud de vinculación, el motor de protocolo debe pasar por la tabla de transacciones y hacer fallar cualquier transacción según la vinculación.

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

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

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

Con un ID de nodo par y una especificación de transporte, esta solicitud configura una vinculación con ese par. Las ofertas requerirán una finalización adicional SOLO si el transporte es TCP. Si ya existe una vinculación con el 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 objetivo de vinculación.
[in] aTransport
El transporte que se usará.
Resultado que se muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si la tabla de vinculación está completa. De lo contrario, muestra un WEAVE_ERROR que refleja una falla en la inicialización de la vinculación.
También:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Realizar la vinculación a un intercambio de tráfico 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 objetivo de vinculación.
Resultado que se 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 de Weave activa.

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

Detalles
Parámetros
[in] aConnection
Un puntero a una conexión de Weave que usará la vinculación.
Resultado que se muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si la tabla de vinculación está completa. De lo contrario, mostrará un error que refleja un error al 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 queda incompleta, es decir, cuando se cierra la conexión para una vinculación de TCP, el motor del protocolo debe fallar cualquier transacción que dependa 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 tome un ID de par.

Detalles
Parámetros
[in] aBinding
Un puntero a 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 fallas de vinculación deben usar este método, que simplemente pasa el ID de par junto con un informe de estado. De hecho, dado que este método es un vacío 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 del par o 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 la quite de la tabla de vinculación.

Cuando una vinculación es “no delimitada” también se deben quitar todas las transacciones que 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 ID de nodo de 64 bits o extremo del servicio 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 la quite de la tabla de vinculación.

Cuando una vinculación es “no delimitada” también se deben quitar todas las transacciones que 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 ID de nodo de 64 bits o extremo del servicio 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ía 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
)