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 mesa vinculante que, si el motor va a ser responsable de nada más allá de simplemente recibir notificaciones de difusión, probablemente, debe 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 una vinculación utilizando un identificador de nodo del mismo nivel y un especificador de transporte conocidos. |
BindRequest (const uint64_t & aPeerNodeId) | Enlazar a un par conocido utilizando el transporte predeterminado. |
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | |
BindRequest ( WeaveConnection *aConnection) | Solicite una encuadernación mediante 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 una encuadernación de la tabla de encuadernación. |
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr) | void Solicite que se deshaga y elimine una encuadernación de la tabla de encuadernació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 :: Armadura :: Perfiles :: DataManagement_Legacy :: :: ProtocolEngine DMTransaction |
Atributos protegidos
mBindingTable
Binding mBindingTable[kBindingTableSize]
El ProtocolEngine tiene una mesa vinculante que, si el motor va a ser responsable de nada más allá de simplemente recibir notificaciones de difusión, probablemente, debe 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 una pequeña cantidad 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 éxito On. De lo contrario, devolver un WEAVE_ERROR que refleja una incapacidad para 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 según la vinculación.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
Solicite una vinculación 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 un enlace al par, se reutiliza.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones | WEAVE_NO_ERROR el éxito o WEAVE_ERROR_NO_MEMORY si la tabla de unión es completa. De lo contrario, devolver un WEAVE_ERROR que refleja un fracaso para inicializar la unión. |
Opción De Transporte De Tejido
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Enlazar a un par conocido utilizando el transporte predeterminado.
Detalles | |||
---|---|---|---|
Parámetros |
| ||
Devoluciones | WEAVE_NO_ERROR éxito On. De lo contrario, devolver un WEAVE_ERROR que refleja el fracaso de la operación de enlace. |
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
Solicite una encuadernación mediante una conexión Weave activa.
También se puede establecer un enlace utilizando 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 el éxito o WEAVE_ERROR_NO_MEMORY si la tabla de unión es completa. De lo contrario, devuelve un error que refleja un error al inicializar el enlace. |
Indicación incompleta
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 |
|
Indicación incompleta
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, ya que este método es nulo virtual, cualquier DMClient o DMPublisher subclase 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 una encuadernación de la tabla de encuadernación.
Cuando una vinculación está "liberada", también se deben eliminar las transacciones que actualmente dependen de ella. 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 una encuadernación de la tabla de encuadernación.
Cuando una vinculación está "liberada", también se deben eliminar las transacciones que actualmente dependen de ella. 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 )