nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
A classe Binding gerencia o estado de comunicações em nome de uma entidade de aplicativo usando o Weave.
Resumo
Quando um aplicativo deseja usar o Weave para se comunicar com uma entidade remota, há uma ampla variedade de opções. A classe Binding organiza essas opções e as organiza de maneira que o material mais fácil seja fácil e o mais difícil seja pelo menos tratável. As opções são:
- comunicação unicast UDP com um nó de peering conhecido.
- Transmissão UDP com "qualquer" nó.
- comunicação WRMP unicast com um nó de peering conhecido.
- que se comunicam por TCP com um nó de peering conhecido.
- Comunicações TCP com um endpoint de serviço conhecido usando uma instância do gerenciador de serviços para configuração.
- comunicações TCP baseadas em uma conexão pré-estabelecida.
Construtores e destrutores |
|
---|---|
Binding(void)
O construtor padrão para objetos Binding.
|
|
~Binding(void)
O destrutor de objetos Binding.
|
Tipos públicos |
|
---|---|
@165{
|
enum O conjunto de estados do objeto Binding. |
Atributos públicos |
|
---|---|
mAuthMode
|
WeaveAuthMode
O modo de autenticação do Weave a ser usado.
|
mConnection
|
Um ponteiro para a conexão Weave atualmente em uso nesta vinculação.
|
mEngine
|
Um ponteiro para o objeto ProtocolEngine relacionado a esta Binding.
|
mPeerNodeId
|
uint64_t
O ID do nó de 64 bits do destino de vinculação.
|
mServiceMgr
|
Um ponteiro para o objeto ServiceManager (opcional) a ser usado na conclusão desta vinculação.
|
mState
|
uint8_t
O estado atual do objeto Binding.
|
mTransport
|
uint8_t
O transporte a ser usado para concluir esta Vinculação.
|
Funções públicas |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Processar a confirmação de uma solicitação de vinculação.
|
CompleteConfirm(StatusReport & aReport)
|
void
Lidar com a falha de uma solicitação de vinculação.
|
CompleteConfirm(void)
|
void
Processar a confirmação de uma solicitação de vinculação.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Solicite a conclusão de uma vinculação.
|
Connect(WeaveConnection *aConnection)
|
Conclua uma vinculação TCP fornecendo uma conexão completa.
|
Finalize(void)
|
void
Descompletar uma vinculação e liberá-la.
|
Finalize(WEAVE_ERROR aErr)
|
void
Descompletar uma vinculação e liberá-la.
|
Free(void)
|
void
Limpe o estado da vinculação.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Produza um objeto ExchangeContext de uma Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Lidar com a falha de uma vinculação.
|
Init(const uint64_t & aPeerNodeId)
|
Inicialize uma Binding apenas com um ID de nó.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Inicialize um objeto Binding com base no código e no transporte de peering.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Inicialize um objeto Binding em um endpoint de serviço.
|
Init(WeaveConnection *aConnection)
|
Inicialize um objeto Binding com uma WeaveConnection.
|
IsComplete(void)
|
bool
Verifique se uma vinculação foi concluída.
|
IsFree(void)
|
bool
A verificação de vinculação é sem custo financeiro.
|
UncompleteRequest(void)
|
void
Fazer com que uma vinculação fique incompleta.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Fazer com que uma vinculação fique incompleta.
|
Tipos públicos
@165
@165
O conjunto de estados do objeto Binding.
Propriedades | |
---|---|
kState_Complete
|
O estado de uma Binding que está completa e pronta para uso. |
kState_Completing
|
O estado de uma Binding que está em processo de conclusão. |
kState_Incomplete
|
O estado inicial (e final) de uma Binding. |
Atributos públicos
mAuthMode
WeaveAuthMode mAuthMode
O modo de autenticação do Weave a ser usado.
(SOMENTE_LEITURA)
Este é o modo de autenticação usado em todas as comunicações regidas por esta vinculação.
mConnection
WeaveConnection * mConnection
Um ponteiro para a conexão Weave atualmente em uso nesta vinculação.
(SOMENTE LEITURA)
As vinculações TCP podem ser inicializadas com uma conexão imediatamente ou podem alocar uma no momento da conclusão.
mEngine
ProtocolEngine * mEngine
Um ponteiro para o objeto ProtocolEngine relacionado a esta Binding.
Uma vinculação geralmente é concluída em relação a um mecanismo de protocolo específico, que é usado principalmente como uma forma de acessar a MessageLayer. É aqui que nós o controlamos.
mPeerNodeId
uint64_t mPeerNodeId
O ID do nó de 64 bits do destino de vinculação.
(SOMENTE LEITURA)
Cada Binding tem uma entidade de destino, que é nomeada aqui. Além de um ID de nó do Weave, é possível nomear um endpoint de serviço.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Um ponteiro para o objeto ServiceManager (opcional) a ser usado na conclusão desta vinculação.
(SOMENTE LEITURA)
Ao vincular ao serviço Weave, um ID de endpoint do serviço de 64 bits pode ser fornecido no momento da inicialização no lugar de um ID de nó do Weave. Nesse caso, também é necessário um objeto ServiceManager para concluir a vinculação. As vinculações normais de TCP ou WRMP não exigem um objeto ServiceManager.
mState
uint8_t mState
O estado atual do objeto Binding.
Apenas uma operação "concluída" pode ser executada por vez. Em qualquer caso, se você solicitar a conclusão de uma vinculação concluída, a função de confirmação será chamada imediatamente. A variável abaixo rastreia o estado atual e atua como um bloqueio.
mTransport
uint8_t mTransport
O transporte a ser usado para concluir esta Vinculação.
(SOMENTE LEITURA)
Os valores possíveis para mTransport são definidos em DMConstants.h.
Funções públicas
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Processar a confirmação de uma solicitação de vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Lidar com a falha de uma solicitação de vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm
void CompleteConfirm( void )
Processar a confirmação de uma solicitação de vinculação.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Solicite a conclusão de uma vinculação.
A conclusão de uma vinculação é, pelo menos, para vinculações que exigem TCP, realizada em relação a um objeto ProtocolEngine específico, que fornece acesso a uma instância do ExchangeManager.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
||||||
Retorna |
Caso contrário, qualquer WEAVE_ERROR será retornado ao tentar se conectar.
|
Conectar
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Conclua uma vinculação TCP fornecendo uma conexão completa.
Uma vinculação TCP recém-inicializada não pode ser usada até que seja concluída. Normalmente, isso é feito sob demanda quando o aplicativo tenta usar a vinculação para enviar mensagens, mas também pode ser concluído explicitamente fornecendo uma conexão do Weave.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
Finalizar
void Finalize( void )
Descompletar uma vinculação e liberá-la.
As vinculações podem ter um estado que requer limpeza, por exemplo, o fechamento da conexão, que é processado pelo método Uncomplete(), além do estado que é simplesmente apagado para o estado inicial pelo método Free(). Esse método, em grande parte, por conveniência, invoca ambos.
Consulte também:Finalize(WEAVE_ERROR)
Finalizar
void Finalize( WEAVE_ERROR aErr )
Descompletar uma vinculação e liberá-la.
As vinculações podem ter um estado que requer limpeza, por exemplo, o fechamento da conexão, que é processado pelo método Uncomplete(), além do estado que é simplesmente apagado para o estado inicial pelo método Free(). Esse método, em grande parte, por conveniência, invoca ambos.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Finalizar(nulo)
Sem custo financeiro
void Free( void )
Limpe o estado da vinculação.
Retornar incondicionalmente todo o estado de vinculação ao estado original.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produza um objeto ExchangeContext de uma Binding.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
um ponteiro para um objeto ExchangeContext, ou NULL em caso de falha.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Lidar com a falha de uma vinculação.
Esse método é invocado e, por sua vez, invoca gerenciadores de camada superior quando a vinculação falha DEPOIS da conclusão, ou seja, depois que CompleteConfirm() é invocado com um status que indica sucesso.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicialize uma Binding apenas com um ID de nó.
Isso resulta em uma vinculação com o transporte padrão configurado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Inicialize um objeto Binding com base no código e no transporte de peering.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicialize um objeto Binding em um endpoint de serviço.
É assim que você se vincula a um endpoint específico no serviço Nest. Uma vinculação desse tipo requer um processo de conclusão em vários estágios, que pode incluir o preenchimento ou a atualização do cache do diretório de serviços local. Na maioria das vezes, esse processo fica oculto do aplicativo, mas significa que erros surgidos posteriormente no processo podem ser entregues, normalmente por meio do retorno de chamada de "confirmação" relevante, depois, às vezes muito depois, da solicitação original para usar (e concluir) a vinculação.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inicialize um objeto Binding com uma WeaveConnection.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
IsComplete
bool IsComplete( void )
Verifique se uma vinculação foi concluída.
Detalhes | |
---|---|
Retorna |
verdadeiro se estiver completo; caso contrário, será falso.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
A verificação de vinculação é sem custo financeiro.
Neste contexto, "sem custo financeiro" significa apenas que tem um ID de nó de peering definido. IsFree() deve ser entendido como “se o Free() tiver sido chamado e não foi usado desde então”.
Detalhes | |
---|---|
Retorna |
verdadeiro se a vinculação for livre. Caso contrário, será falso.
|
UncompleteRequest
void UncompleteRequest( void )
Fazer com que uma vinculação fique incompleta.
Fundamentalmente, uma vinculação deve estar no estado "incompleto" depois que esse método for chamado, mas, de forma mais sutil, qualquer estado relevante que não esteja contido na própria vinculação, por exemplo, conexão TCP, também deve ser limpo. Os aplicativos podem considerar invocar UncompleteRequest() como parte da limpeza em caso de erro.
Consulte também:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Fazer com que uma vinculação fique incompleta.
Fundamentalmente, uma vinculação deve estar no estado "incompleto" depois que esse método for chamado, mas, de forma mais sutil, qualquer estado relevante que não esteja contido na própria vinculação, por exemplo, conexão TCP, também deve ser limpo. Os aplicativos podem considerar invocar UncompleteRequest() como parte da limpeza em caso de erro.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
UncompleteRequest(void)
~Vinculação
virtual ~Binding( void )
O destrutor de objetos Binding.
Limpa todo o estado interno E, se necessário, fecha conexões abertas.