nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
La clase Binding administra el estado de las comunicaciones en nombre de una entidad de la aplicación con Weave.
Resumen
Cuando una aplicación quiere usar Weave para comunicarse con una entidad remota, existe una amplia variedad de opciones. La clase Binding agrupa estas opciones y las organiza de tal manera que los elementos fáciles son sencillos y los más difíciles se pueden solucionar. Entre las opciones que se abordan, se incluyen las siguientes:
- comunicación UDP unicast con un nodo de intercambio de tráfico conocido.
- Transmisión UDP con “any” el nodo de inicio de sesión.
- comunicación WRMP unidifusión con un nodo de intercambio de tráfico conocido.
- comunicaciones TCP con un nodo de intercambio de tráfico conocido.
- comunicaciones de TCP con un extremo de servicio conocido que usa una instancia del administrador de servicios para realizar la configuración.
- comunicaciones TCP basadas en una conexión preestablecida.
Constructores y destructores |
|
---|---|
Binding(void)
El constructor predeterminado para objetos Binding.
|
|
~Binding(void)
El destructor para objetos Binding.
|
Tipos públicos |
|
---|---|
@165{
|
enum El conjunto de estados del objeto Binding. |
Atributos públicos |
|
---|---|
mAuthMode
|
WeaveAuthMode
El modo de autenticación de Weave que se usará.
|
mConnection
|
Un puntero para la conexión de Weave que se usa actualmente en esta vinculación.
|
mEngine
|
Un puntero al objeto ProtocolEngine relacionado con esta vinculación.
|
mPeerNodeId
|
uint64_t
El ID de nodo de 64 bits del destino de vinculación.
|
mServiceMgr
|
Un puntero al objeto ServiceManager (opcional) que se usará para completar esta vinculación.
|
mState
|
uint8_t
El estado actual del objeto Binding.
|
mTransport
|
uint8_t
El transporte que se usará para completar esta Vinculación.
|
Funciones públicas |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Controla la confirmación de una solicitud de vinculación.
|
CompleteConfirm(StatusReport & aReport)
|
void
Soluciona la falla de una solicitud de vinculación.
|
CompleteConfirm(void)
|
void
Controla la confirmación de una solicitud de vinculación.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Solicita la finalización de una vinculación.
|
Connect(WeaveConnection *aConnection)
|
Proporciona una conexión completa para completar una vinculación de TCP.
|
Finalize(void)
|
void
"Incompleto" una vinculación y liberarla.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Incompleto" una vinculación y liberarla.
|
Free(void)
|
void
Borra el estado de vinculación.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Produce un objeto ExchangeContext a partir de una Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Soluciona la falla de una vinculación.
|
Init(const uint64_t & aPeerNodeId)
|
Inicializa una vinculación con solo un ID de nodo.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Inicializa un objeto Binding según el ID y el transporte de par.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Inicializa un objeto Binding en el extremo del servicio.
|
Init(WeaveConnection *aConnection)
|
Inicializa un objeto Binding con una WeaveConnection.
|
IsComplete(void)
|
bool
Verifica si una vinculación está completa.
|
IsFree(void)
|
bool
La verificación es una vinculación gratuita.
|
UncompleteRequest(void)
|
void
Hace que una vinculación esté incompleta.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Hace que una vinculación esté incompleta.
|
Tipos públicos
@165
@165
El conjunto de estados del objeto Binding.
Propiedades | |
---|---|
kState_Complete
|
Es el estado de una Binding que está completa y lista para usarse. |
kState_Completing
|
El estado de una vinculación que está en proceso de completarse. |
kState_Incomplete
|
El estado inicial (y final) de una Binding. |
Atributos públicos
mAuthMode
WeaveAuthMode mAuthMode
El modo de autenticación de Weave que se usará.
(READ_ONLY)
Este es el modo de autenticación que se utiliza en todas las comunicaciones regidas por esta vinculación.
mConnection
WeaveConnection * mConnection
Un puntero para la conexión de Weave que se usa actualmente en esta vinculación.
(SOLO LECTURA)
Las vinculaciones de TCP pueden inicializarse con una conexión de inmediato o pueden asignar una en el momento de la finalización.
.mEngine
ProtocolEngine * mEngine
Un puntero al objeto ProtocolEngine relacionado con esta Vinculación
Por lo general, una vinculación se completa con respecto a un motor de protocolo específico, que se usa principalmente como una forma de acceder a MessageLayer. Aquí es donde hacemos un seguimiento.
mPeerNodeId
uint64_t mPeerNodeId
El ID de nodo de 64 bits del destino de vinculación.
(SOLO LECTURA)
Cada Vinculación tiene una entidad de destino, que se nombra aquí. Además de un ID de nodo de Weave, esto puede nombrar un extremo de servicio.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Un puntero al objeto ServiceManager (opcional) que se usará para completar esta vinculación.
(SOLO LECTURA)
Cuando se realiza la vinculación al servicio de Weave, se puede proporcionar un ID de extremo del servicio de 64 bits en el momento de la inicialización en lugar de un ID de nodo de Weave. En este caso, también se requiere un objeto ServiceManager para completar la vinculación. Las vinculaciones TCP o WRMP normales no requieren un objeto ServiceManager.
mState
uint8_t mState
El estado actual del objeto Binding.
Solo un elemento “completado” la operación puede ejecutarse a la vez y, en cualquier caso, si solicitas completar una vinculación completada, solo llama a la función de confirmación de inmediato. La siguiente variable de estado realiza un seguimiento del estado actual y actúa como un bloqueo.
mTransport
uint8_t mTransport
El transporte que se usará para completar esta Vinculación.
(SOLO LECTURA)
Los valores posibles para mTransport se definen en DMConstants.h.
Funciones públicas
Vinculación
Binding( void )
El constructor predeterminado para objetos Binding.
Borra todo el estado interno.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Controla la confirmación de una solicitud de vinculación.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Soluciona la falla de una solicitud de vinculación.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompleteConfirm
void CompleteConfirm( void )
Controla la confirmación de una solicitud de vinculación.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Solicita la finalización de una vinculación.
La finalización de una vinculación se realiza, al menos para las vinculaciones que requieren TCP, con respecto a un objeto ProtocolEngine específico, que proporciona acceso a una instancia de ExchangeManager.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
||||||
Resultado que se muestra |
De lo contrario, es posible que se muestre cualquier WEAVE_ERROR mientras se intentaba establecer la conexión.
|
Conectar
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Proporciona una conexión completa para completar una vinculación TCP.
No se puede usar una vinculación de TCP recién inicializada hasta que se complete. Normalmente, esto se hace a pedido cuando la aplicación intenta usar la vinculación para enviar mensajes, pero también se puede completar explícitamente proporcionando una conexión de Weave.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
Finalizar
void Finalize( void )
"Incompleto" una vinculación y liberarla.
Las vinculaciones pueden tener un estado que requiera limpieza, p.ej., el cierre de la conexión, que se controla con el método Uncomplete(), además del estado que el método Free() simplemente borra a su estado inicial. Este método, en gran medida, por razones de conveniencia, invoca ambos.
También:Finalizar(WEAVE_ERROR)
Finalizar
void Finalize( WEAVE_ERROR aErr )
"Incompleto" una vinculación y liberarla.
Las vinculaciones pueden tener un estado que requiera limpieza, p.ej., el cierre de la conexión, que se controla con el método Uncomplete(), además del estado que el método Free() simplemente borra a su estado inicial. Este método, en gran medida, por razones de conveniencia, invoca ambos.
Detalles | |||
---|---|---|---|
Parámetros |
|
Finalizar(void)
Gratis
void Free( void )
Borra el estado de vinculación.
De manera incondicional, muestra todos los estados de vinculación a su estado original.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produce un objeto ExchangeContext a partir de una Binding.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Resultado que se muestra |
un puntero a un objeto ExchangeContext, o NULL si se produce un error.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Soluciona la falla de una vinculación.
Este método se invoca y, a su vez, invoca controladores de capas superiores cuando la vinculación falla DESPUÉS de completarse, es decir, después de que se invoca CompleteConfirm() con un estado que indique que la vinculación es correcta.
Detalles | |||
---|---|---|---|
Parámetros |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicializa una vinculación con solo un ID de nodo.
Esto da como resultado una vinculación con el transporte predeterminado configurado.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Inicializa un objeto Binding según el ID y el transporte de par.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicializa un objeto Binding en el extremo del servicio.
Así es como te vinculas a un extremo específico en el servicio de Nest. Una vinculación de este tipo requiere un proceso de finalización de varias etapas, que puede incluir la propagación o la actualización de la caché del directorio de servicios local. En la mayoría de los casos, este proceso está oculto para la aplicación, pero significa que los errores que surjan más adelante en el proceso podrían entregarse, normalmente a través de la "confirmación" pertinente. después (y a veces mucho después) de la solicitud original para usar (y completar) la vinculación.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inicializa un objeto Binding con una WeaveConnection.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores de retorno |
|
IsComplete
bool IsComplete( void )
Verifica si una vinculación está completa.
Detalles | |
---|---|
Resultado que se muestra |
true si está completa; de lo contrario, false.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
La verificación es una vinculación gratuita.
"Gratis" significa que tiene un nodo de par definido “ID”. IsFree() should be thought of as meaning "has had Free() llamado y no se usa desde entonces".
Detalles | |
---|---|
Resultado que se muestra |
true si la vinculación es libre; de lo contrario, false.
|
UncompleteRequest
void UncompleteRequest( void )
Hace que una vinculación quede incompleta.
Fundamentalmente, una vinculación debe estar en el estado "incompleto" después de que se haya llamado a este método, pero, de forma más sutil, cualquier estado relevante que no esté contenido en la vinculación en sí, p.ej., o de TCP, también debe limpiarse. Las aplicaciones pueden considerar invocar a UncompleteRequest() como parte de la limpieza de errores.
También:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Hace que una vinculación quede incompleta.
Fundamentalmente, una vinculación debe estar en el estado "incompleto" después de que se haya llamado a este método, pero, de forma más sutil, cualquier estado relevante que no esté contenido en la vinculación en sí, p.ej., conexión TCP, también debe limpiarse. Las aplicaciones pueden considerar invocar a UncompleteRequest() como parte de la limpieza de errores.
Detalles | |||
---|---|---|---|
Parámetros |
|
UncompleteRequest(void)
~Vinculación
virtual ~Binding( void )
El destructor para objetos Binding.
Borra todo el estado interno Y, si es necesario, cierra las conexiones abiertas.