nl :: Tejido:: Perfiles: DataManagement_Legacy :: Protocolo Motor
Esto es una clase abstracta.#include <src/lib/profiles/data-management/Legacy/ProtocolEngine.h>
La clase de motor de protocolo WDM.
Resumen
Una entidad de gestión de datos, cliente o editor, 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 protocolo.
Herencia
Subclases conocidas directas:nl :: Weave :: Perfiles :: DataManagement_Legacy :: DMClient
nl :: Weave :: Profiles :: DataManagement_Legacy :: DMPublisher
Constructores y Destructores | |
---|---|
ProtocolEngine (void) | |
~ProtocolEngine (void) |
Atributos protegidos | |
---|---|
mBindingTable [kBindingTableSize] | El ProtocolEngine tiene una tabla vinculante que, si el motor va a ser responsable de algo más que simplemente recibir notificaciones de transmisión, probablemente deba contener al menos una entrada. |
mExchangeMgr | |
mResponseTimeout | uint32_t |
mTransactionTable [kTransactionTableSize] |
Funciones publicas | |
---|---|
BindConfirm ( Binding *aBinding) | virtual WEAVE_ERROR Manejar la confirmación de que una solicitud de vinculación se completó correctamente. |
BindConfirm ( Binding *aBinding, StatusReport & aReport) | virtual WEAVE_ERROR Manejar la confirmación de que ha fallado una solicitud de vinculación. |
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport) | Solicite un enlace mediante un identificador de nodo de pares conocido y un especificador de transporte. |
BindRequest (const uint64_t & aPeerNodeId) | Enlace a un par conocido utilizando el transporte predeterminado. |
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | |
BindRequest ( WeaveConnection *aConnection) | Solicite un enlace utilizando una conexión Weave activa. |
IncompleteIndication ( Binding *aBinding, StatusReport & aReport) | virtual void Manejar una indicación de que un enlace ha fallado. |
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0 | virtual void Manejar una indicación de que una encuadernación se ha vuelto incompleta. |
Init ( WeaveExchangeManager *aExchangeMgr) | virtual WEAVE_ERROR |
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout) | virtual WEAVE_ERROR |
UnbindRequest (const uint64_t & aPeerNodeId) | void Solicite que se deshaga y elimine un enlace de la tabla de enlace. |
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr) | void Solicite que un enlace se deshaga y se elimine de la tabla de enlace. |
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 :: Weave :: Profiles :: DataManagement_Legacy :: ProtocolEngine :: DMTransaction |
Atributos protegidos
mBindingTable
Binding mBindingTable[kBindingTableSize]
El ProtocolEngine tiene una tabla vinculante que, si el motor va a ser responsable de algo más que simplemente recibir notificaciones de transmisión, probablemente deba contener al menos una entrada.
Los enlaces generalmente se indexan por ID de nodo. Lo que esto significa es que cada motor solo puede tener un enlace único a un punto final de servicio determinado.
La especificación WDM tiene esta noción de "enlace predeterminado", que es el lugar al que van los mensajes si no se proporciona un destino explícito. Esto se utilizará principalmente en dispositivos muy simples con una sola encuadernación o un pequeño número de encuadernaciones y, para otros fines, será solo la primera encuadernación formada.
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
Funciones publicas
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
Manejar la confirmación de que una solicitud de vinculación se completó correctamente.
Una vez que se ha completado un enlace, el motor de protocolo pasa por la tabla de transacciones e inicia las transacciones que dependen de ese enlace.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | WEAVE_NO_ERROR Si tiene éxito. De lo contrario, devuelve un WEAVE_ERROR que refleja la imposibilidad de iniciar una transacción. |
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
Manejar la confirmación de que una solicitud de vinculación ha fallado.
Cuando falla una solicitud de vinculación, el motor de protocolo debe pasar por la tabla de transacciones y fallar cualquier transacción dependiendo de la vinculación.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Solicite un enlace utilizando un identificador de nodo del mismo nivel y un especificador de transporte conocidos.
Dada una ID de nodo par y una especificación de transporte, esta solicitud establece un enlace a ese par. La licitación requerirá una finalización adicional SOLO si el transporte es TCP. Si ya existe una vinculación al par, se reutiliza.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones | WEAVE_NO_ERROR en caso de éxito o WEAVE_ERROR_NO_MEMORY si la tabla de enlace está llena. De lo contrario, devuelve un WEAVE_ERROR que refleja un error al inicializar el enlace. |
Opción De Transporte De Tejido
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Enlace a un par conocido utilizando el transporte predeterminado.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | WEAVE_NO_ERROR Si tiene éxito. De lo contrario, devuelve un WEAVE_ERROR que refleja el error 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 )
Solicite una encuadernación utilizando una conexión Weave activa.
También se puede establecer una vinculación mediante una conexión existente y abierta. Tenga en cuenta que los enlaces que se establecen de esta manera no requieren una finalización adicional.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | WEAVE_NO_ERROR en caso de éxito o WEAVE_ERROR_NO_MEMORY si la tabla de enlace está llena. De lo contrario, devuelve un error que refleja una falla al iniciar el enlace. |
Incompleto Indicación
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
Manejar una indicación de que un enlace ha fallado.
Cuando un enlace se vuelve incompleto, es decir, cuando la conexión se cierra para un enlace TCP, el motor de protocolo debe fallar en cualquier transacción que dependa de él, 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 |
|
Incompleto Indicación
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
Manejar una indicación de que una encuadernación se ha vuelto incompleta.
Las capas superiores que quieran estar informadas de la falla de enlace deben usar este método, que simplemente pasa el ID del par junto con un informe de estado. De hecho, dado que este método es prácticamente nulo, cualquier subclase de DMClient o DMPublisher debe proporcionar una implementación.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
En eso
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
En eso
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
Protocolo Motor
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
Solicite que se deshaga y elimine un enlace de la tabla de enlace.
Cuando un enlace está "liberado", también se deben eliminar las transacciones que actualmente dependen de él. Este método finaliza todas las transacciones con este enlace automáticamente.
Detalles | |||
---|---|---|---|
Parámetros |
|
UnbindRequest (const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
Solicite que se deshaga y elimine un enlace de la tabla de enlace.
Cuando un enlace está "liberado", también se deben eliminar las transacciones que actualmente dependen de él. Este método finaliza todas las transacciones con este enlace automáticamente.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
UnbindRequest (const uint64_t)
~ Motor de protocolo
virtual ~ProtocolEngine( void )
Funciones protegidas
Claro
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 )
Finalizar transacciones
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 )