nl :: Tejido:: Perfiles: DataManagement_Legacy :: Unión
#include <src/lib/profiles/data-management/Legacy/Binding.h>
La clase Binding gestiona el estado de las comunicaciones en nombre de una entidad de aplicación que utiliza Weave.
Resumen
Cuando una aplicación quiere usar Weave para comunicarse con una entidad remota, existe una amplia variedad de opciones. La clase Binding acorrala estas opciones y las organiza de tal manera que lo fácil sea fácil y lo más difícil sea al menos manejable. Las opciones cubiertas incluyen:
- comunicación UDP de unidifusión con un nodo par conocido.
- Difusión UDP con "cualquier" nodo.
- comunicación WRMP unicast con un nodo par conocido.
- Comunicaciones TCP con un nodo par conocido.
- Comunicaciones TCP con un punto final de servicio conocido utilizando una instancia de administrador de servicios para configurar las cosas.
- Comunicaciones TCP basadas en una conexión preestablecida.
Constructores y Destructores | |
---|---|
Binding (void) El constructor predeterminado para vincular objetos. | |
~Binding (void) El destructor para vincular objetos. |
Tipos públicos | |
---|---|
@165 { | enumeración El conjunto de estados del objeto Binding . |
Atributos públicos | |
---|---|
mAuthMode | WeaveAuthMode El modo de autenticación Weave que se utilizará. |
mConnection | Un puntero a la conexión Weave actualmente en uso en este enlace. |
mEngine | Un puntero al objeto ProtocolEngine relacionado con este enlace . |
mPeerNodeId | uint64_t El ID de nodo de 64 bits del destino de enlace. |
mServiceMgr | Un puntero al objeto ServiceManager (opcional) que se utilizará para completar este enlace. |
mState | uint8_t El estado actual del objeto Binding . |
mTransport | uint8_t El transporte que se utilizará para completar este enlace . |
Funciones publicas | |
---|---|
CompleteConfirm ( WeaveConnection *aConnection) | void Manejar la confirmación de una solicitud de vinculación. |
CompleteConfirm ( StatusReport & aReport) | void Manejar el error de una solicitud de vinculación. |
CompleteConfirm (void) | void Manejar la confirmación de una solicitud de vinculación. |
CompleteRequest ( ProtocolEngine *aEngine) | Solicite la finalización de una vinculación. |
Connect ( WeaveConnection *aConnection) | Complete un enlace TCP proporcionando una conexión completa. |
Finalize (void) | void "Descompletar" una encuadernación y liberarla. |
Finalize ( WEAVE_ERROR aErr) | void "Descompletar" una encuadernación y liberarla. |
Free (void) | void Borre el estado vinculante. |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | Produzca un objeto ExchangeContext a partir de un enlace . |
IncompleteIndication ( StatusReport & aReport) | void Manejar la falla de una encuadernación. |
Init (const uint64_t & aPeerNodeId) | Inicialice un enlace con solo un ID de nodo. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | Inicialice un objeto Binding basado en el transporte y el ID del mismo nivel. |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | Inicialice un objeto Binding a un punto final de servicio. |
Init ( WeaveConnection *aConnection) | Inicialice un objeto Binding con WeaveConnection . |
IsComplete (void) | bool Compruebe si una encuadernación está completa. |
IsFree (void) | bool El cheque es un enlace es gratis. |
UncompleteRequest (void) | void Hacer que una encuadernación esté incompleta. |
UncompleteRequest ( WEAVE_ERROR aErr) | void Hacer que una encuadernación esté incompleta. |
Tipos públicos
@ 165
@165
Atributos públicos
mAuthMode
WeaveAuthMode mAuthMode
El modo de autenticación Weave que se utilizará.
(SOLO LECTURA)
Este es el modo de autenticación utilizado en todas las comunicaciones regidas por este enlace.
mConnection
WeaveConnection * mConnection
Un puntero a la conexión Weave actualmente en uso en este enlace.
(SOLO LECTURA)
Los enlaces TCP se pueden inicializar con una conexión desde el principio o pueden asignar una en el momento de la finalización.
mEngine
ProtocolEngine * mEngine
Un puntero al objeto ProtocolEngine relacionado con este enlace .
Un enlace generalmente se completa con respecto a un motor de protocolo particular, que se usa principalmente como una forma de acceder al MessageLayer. Aquí es donde lo seguimos.
mPeerNodeId
uint64_t mPeerNodeId
El ID de nodo de 64 bits del destino de enlace.
(SOLO LECTURA)
Cada enlace tiene una entidad de destino, que se nombra aquí. Además de un ID de nodo Weave, esto puede nombrar un punto final de servicio.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Un puntero al objeto ServiceManager (opcional) que se utilizará para completar este enlace.
(SOLO LECTURA)
Cuando se vincula al servicio Weave, se puede proporcionar un ID de punto final de servicio de 64 bits en el momento de la inicialización en lugar de un ID de nodo Weave. En este caso, también se requiere un objeto ServiceManager para completar el enlace. Los enlaces TCP o WRMP normales no requieren un objeto ServiceManager.
mState
uint8_t mState
El estado actual del objeto Binding .
Solo se puede ejecutar una operación "completa" a la vez y, en cualquier caso, si solicita completar un enlace completo, simplemente llama a la función de confirmación de inmediato. La siguiente variable de estado rastrea el estado actual y actúa como bloqueo.
mTransport
uint8_t mTransport
El transporte que se utilizará para completar este enlace .
(SOLO LECTURA)
Los valores posibles para mTransport se definen en DMConstants.h.
Funciones publicas
Unión
Binding( void )
El constructor predeterminado para vincular objetos.
Borra todo el estado interno.
CompletoConfirmar
void CompleteConfirm( WeaveConnection *aConnection )
Manejar la confirmación de una solicitud de vinculación.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompletoConfirmar
void CompleteConfirm( StatusReport & aReport )
Manejar el error de una solicitud de vinculación.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompletoConfirmar
void CompleteConfirm( void )
Manejar la confirmación de una solicitud de vinculación.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Solicite la finalización de una vinculación.
La finalización de una vinculación se lleva a cabo, al menos para las vinculaciones que requieren TCP, con respecto a un objeto ProtocolEngine particular, que proporciona acceso a una instancia de ExchangeManager.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
| ||||||
Devoluciones | De lo contrario, cualquier WEAVE_ERROR regresó al intentar conectarse. |
Conectar
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Complete un enlace TCP proporcionando una conexión completa.
No se puede utilizar un enlace TCP recién inicializado hasta que se haya completado. Normalmente, esto se hace a pedido cuando la aplicación intenta hacer uso del enlace para enviar mensajes, pero también se puede completar explícitamente proporcionando una conexión Weave.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
Finalizar
void Finalize( void )
"Descompletar" una encuadernación y liberarla.
Los enlaces pueden tener un estado que requiere limpieza, por ejemplo, cierre de conexión, que se maneja con el método Uncomplete () además del estado que simplemente se borra a su estado inicial con el método Free () . Este método, en gran parte por conveniencia, invoca a ambos.
Ver también:Finalizar (WEAVE_ERROR)
Finalizar
void Finalize( WEAVE_ERROR aErr )
"Descompletar" una encuadernación y liberarla.
Los enlaces pueden tener un estado que requiere limpieza, por ejemplo, cierre de conexión, que se maneja con el método Uncomplete () además del estado que simplemente se borra a su estado inicial con el método Free () . Este método, en gran parte por conveniencia, invoca a ambos.
Detalles | |||
---|---|---|---|
Parámetros |
|
Finalizar (anular)
Libre
void Free( void )
Borre el estado vinculante.
Devuelve incondicionalmente todos los estados vinculantes a su estado original.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produzca un objeto ExchangeContext a partir de un enlace .
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones | un puntero a un objeto ExchangeContext o NULL en caso de error. |
Indicación incompleta
void IncompleteIndication( StatusReport & aReport )
Manejar la falla de una encuadernación.
Este método se invoca y, a su vez, invoca a los manejadores de capa superior cuando el enlace falla DESPUÉS de la finalización, es decir, después de que CompleteConfirm () se haya invocado con un estado que denota éxito.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompleteConfirm (Informe de estado y un Informe) .
En eso
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicialice un enlace con solo un ID de nodo.
Esto da como resultado un enlace con el transporte predeterminado configurado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
En eso
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Inicialice un objeto Binding basado en el transporte y el ID del mismo nivel.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
En eso
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicialice un objeto Binding a un punto final de servicio.
Así es como se vincula a un punto final en particular en el servicio Nest. Un enlace de este tipo requiere un proceso de finalización de varias etapas, que puede incluir completar o actualizar la memoria caché del directorio de servicios local. En su mayor parte, este proceso está oculto para la aplicación, pero significa que los errores que surgen más adelante en el proceso pueden entregarse, normalmente a través de la devolución de llamada de "confirmación" relevante, después, a veces mucho después, de la solicitud original para usar (y completar). la Unión.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
En eso
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inicialice un objeto Binding con WeaveConnection .
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
Esta completo
bool IsComplete( void )
Compruebe si una encuadernación está completa.
Detalles | |
---|---|
Devoluciones | Es verdadero si está completo, falso en caso contrario. |
CompleteRequest (ProtocolEngine * aEngine)
Está libre
bool IsFree( void )
El cheque es un enlace es gratis.
"Gratis" en este contexto simplemente significa "tiene un ID de nodo de pares definido". Se debe pensar que IsFree () significa "ha sido invocado Free () y no se ha utilizado desde entonces".
Detalles | |
---|---|
Devoluciones | Es verdadero si el enlace es gratuito, falso en caso contrario. |
UncompleteRequest
void UncompleteRequest( void )
Hacer que una encuadernación esté incompleta.
Básicamente, una vinculación estará en el estado "incompleto" después de que se haya llamado a este método pero, más sutilmente, cualquier estado relevante que no esté contenido en la vinculación en sí, por ejemplo, la conexión TCP, también debe limpiarse. Las aplicaciones pueden considerar invocar UncompleteRequest () como parte de la limpieza en caso de error.
Ver también:UncompleteRequest (WEAVE_ERROR)
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Hacer que una encuadernación esté incompleta.
Básicamente, una vinculación estará en el estado "incompleto" después de que se haya llamado a este método pero, más sutilmente, cualquier estado relevante que no esté contenido en la vinculación en sí, por ejemplo, la conexión TCP, también debe limpiarse. Las aplicaciones pueden considerar invocar UncompleteRequest () como parte de la limpieza en caso de error.
Detalles | |||
---|---|---|---|
Parámetros |
|
UncompleteRequest (anulado)
~ Encuadernación
virtual ~Binding( void )
El destructor para vincular objetos.
Borra todo el estado interno Y, si es necesario, cierra las conexiones abiertas.