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)
|
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 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 |
|
||
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 |
|
||||
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 |
|
||||
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.
|
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 |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|
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 |
|
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 )