nl :: Tejido:: Perfiles: DataManagement_Legacy :: Unión
#include <src/lib/profiles/data-management/Legacy/Binding.h>
La encuadernación de clase administra el estado de las comunicaciones en nombre de una entidad de aplicación usando la armadura.
Resumen
Cuando una aplicación quiere usar Weave para comunicarse con una entidad remota, existe una amplia variedad de opciones. La encuadernación de clase corrales de estas opciones y organiza de una manera tal que lo fácil es fácil y las cosas más difíciles es al menos tratables. 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 por defecto para la encuadernación objetos. | |
~Binding (void) El destructor para Encuadernación objetos. |
Tipos públicos | |
---|---|
@165 { | enumeración El conjunto de encuadernación estados de objetos. |
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 a la ProtocolEngine objeto relacionado con este encuadernación . |
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 La corriente de encuadernación estado del objeto. |
mTransport | uint8_t El transporte a utilizar en la realización de esta encuadernación . |
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) | Producir un ExchangeContext objeto desde una Binding . |
IncompleteIndication ( StatusReport & aReport) | void Manejar la falla de una encuadernación. |
Init (const uint64_t & aPeerNodeId) | Inicialice un Encuadernación con sólo un ID de nodo. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | Inicialice un Binding objeto basado en ID de pares y el transporte. |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | Inicializar una unión objeto a un extremo de servicio. |
Init ( WeaveConnection *aConnection) | Inicialice un Encuadernación objeto con un 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
El conjunto de encuadernación estados de objetos.
Propiedades | |
---|---|
kState_Complete | El estado de una unión que está completo y listo para su uso. |
kState_Completing | El estado de una unión que está en el proceso de ser completado. |
kState_Incomplete | El estado inicial (y final) de un Binding . |
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 a la ProtocolEngine objeto relacionado con este encuadernación .
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 encuadernación 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
La corriente de encuadernación estado del objeto.
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 a utilizar en la realización de esta encuadernación .
(SOLO LECTURA)
Los valores posibles para mTransport se definen en DMConstants.h.
Funciones publicas
Unión
Binding( void )
El constructor por defecto para la encuadernación 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.
Terminación de un de unión es, por lo menos para los enlaces que requieren TCP, llevadas a cabo con respecto a un determinado ProtocolEngine objeto, que proporciona acceso a una instancia 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 utilizar el 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.
Bindings pueden tener estado que requiere limpieza, por ejemplo, cierre de la conexión, que se maneja por el método uncomplete () además de estado que está simplemente borra a su estado inicial por la libre () método. 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.
Bindings pueden tener estado que requiere limpieza, por ejemplo, cierre de la conexión, que se maneja por el método uncomplete () además de estado que está simplemente borra a su estado inicial por la libre () método. 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 )
Producir un ExchangeContext objeto desde una Binding .
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Devoluciones | un puntero a un ExchangeContext objeto, 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 los manipuladores de capas superiores cuando la unión falla después de la terminación, es decir, después CompleteConfirm () ha sido invocado con un éxito que denota de estado.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompleteConfirm (StatusReport y Un memorial) .
En eso
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicialice un Encuadernación con sólo 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 Binding objeto basado en ID de pares y el transporte.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
En eso
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicializar una unión objeto a un extremo 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 Encuadernación objeto con un WeaveConnection .
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
Esta completo
bool IsComplete( void )
Compruebe si una encuadernación está completa.
Detalles | |
---|---|
Devoluciones | 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". IsFree () debe ser considerado en el sentido de "libre ha tenido () llamada en él 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 solicitudes se pueden considerar invocando 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 solicitudes se pueden considerar invocando UncompleteRequest () como parte de la limpieza en caso de error.
Detalles | |||
---|---|---|---|
Parámetros |
|
UncompleteRequest (anulado)
~ Encuadernación
virtual ~Binding( void )
El destructor para Encuadernación objetos.
Borra todo el estado interno Y, si es necesario, cierra las conexiones abiertas.