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)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
Clases |
|
---|---|
nl:: |
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 |
|
||
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 |
|
||||
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 |
|
||||
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.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Realiza la vinculación con un par conocido mediante el transporte predeterminado.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|
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 |
|
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 )