nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
A classe Binding gerencia o estado das 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 encurrala essas opções e as organiza de modo que as coisas fáceis sejam fáceis e as mais difíceis sejam pelo menos tratáveis. As opções abordadas incluem:
- 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.
- comunicações TCP com um nó de peering conhecido.
- comunicações TCP com um endpoint de serviço conhecido usando uma instância de gerenciador de serviços para configurar.
- Comunicações TCP com base em uma conexão pré-estabelecida.
Construtores e destruidores |
|
---|---|
Binding(void)
O construtor padrão para objetos Binding.
|
|
~Binding(void)
O destrutor para 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 do Weave atualmente em uso nesta vinculação.
|
mEngine
|
Um ponteiro para o objeto ProtocolEngine relacionado a Binding.
|
mPeerNodeId
|
uint64_t
O ID do nó de 64 bits do destino da vinculação.
|
mServiceMgr
|
Um ponteiro para o objeto ServiceManager (opcional) a ser usado na conclusão dessa vinculação.
|
mState
|
uint8_t
O estado atual do objeto Binding.
|
mTransport
|
uint8_t
O transporte a ser usado para concluir esta Binding.
|
Funções públicas |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Processar a confirmação de uma solicitação de vinculação.
|
CompleteConfirm(StatusReport & aReport)
|
void
Processar 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)
|
Solicita a conclusão de uma vinculação.
|
Connect(WeaveConnection *aConnection)
|
Conclua uma vinculação TCP fornecendo uma conexão concluída.
|
Finalize(void)
|
void
"Não concluído" e liberá-la.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Não concluído" e liberá-la.
|
Free(void)
|
void
Limpe o estado da vinculação.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Produza um objeto ExchangeContext de um Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Lide com a falha de uma vinculação.
|
Init(const uint64_t & aPeerNodeId)
|
Inicialize uma Binding com apenas um ID de nó.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Inicialize um objeto Binding com base no transporte e no ID de apps semelhantes.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Inicialize um objeto Binding para 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 se a vinculação é sem custo financeiro.
|
UncompleteRequest(void)
|
void
Fazem com que uma vinculação fique incompleta.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Fazem com que uma vinculação fique incompleta.
|
Tipos públicos
a 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.
(READ_ONLY)
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 do Weave atualmente em uso nesta vinculação.
(SOMENTE LEITURA)
As vinculações TCP podem ser inicializadas imediatamente com uma conexão ou podem alocar uma no momento da conclusão.
mEngine
ProtocolEngine * mEngine
Um ponteiro para o objeto ProtocolEngine relacionado a 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 acompanhamos isso.
mPeerNodeId
uint64_t mPeerNodeId
O ID do nó de 64 bits do destino da vinculação.
(SOMENTE LEITURA)
Cada Binding tem uma entidade de destino, que é nomeada aqui. Além de um ID de nó do Weave, isso pode 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 dessa vinculação.
(SOMENTE LEITURA)
Ao vincular ao serviço Weave, um ID de endpoint de serviço de 64 bits pode ser fornecido no momento da inicialização no lugar de um ID de nó do Weave. Nesse caso, um objeto ServiceManager também é necessário para concluir a vinculação. Vinculações TCP ou WRMP normais não exigem um objeto ServiceManager.
mState
uint8_t mState
O estado atual do objeto Binding.
Apenas um status "concluído" operação pode ser executada ao mesmo tempo e, em qualquer caso, se você pedir para completar uma vinculação concluída, ele apenas chamará a função de confirmação imediatamente. A variável de estado abaixo rastreia o estado atual e funciona como um bloqueio.
mTransport
uint8_t mTransport
O transporte a ser usado para concluir esta Binding.
(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 )
Processar 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 )
Solicita 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 |
|
||||||
Retornos |
Caso contrário, qualquer WEAVE_ERROR retornado ao tentar se conectar.
|
Connect
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Conclua uma vinculação TCP fornecendo uma conexão concluída.
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 realizado explicitamente fornecendo uma conexão do Weave.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
Finalizar
void Finalize( void )
"Não concluído" e liberá-la.
As vinculações podem ter um estado que requer limpeza, por exemplo, encerramento da conexão, que é tratado pelo método Uncomplete(), além do estado que é simplesmente apagado para seu estado inicial pelo método Free(). Esse método, em grande parte por conveniência, invoca ambos.
Confira também:Finalizar(WEAVE_ERROR)
Finalizar
void Finalize( WEAVE_ERROR aErr )
"Não concluído" e liberá-la.
As vinculações podem ter um estado que requer limpeza, por exemplo, encerramento da conexão, que é tratado pelo método Uncomplete(), além do estado que é simplesmente apagado para seu estado inicial pelo método Free(). Esse método, em grande parte por conveniência, invoca ambos.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Finalizar(nulo)
Gratuito
void Free( void )
Limpar o estado da vinculação.
Retorna incondicionalmente todo o estado de vinculação ao estado original.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produza um objeto ExchangeContext de um Binding.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
um ponteiro para um objeto ExchangeContext ou NULL em caso de falha.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Lide 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 APÓS a conclusão, ou seja, depois que CompleteConfirm() é chamado com um status indicando sucesso.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicialize uma Binding com apenas 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 transporte e no ID de apps semelhantes.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicialize um objeto Binding para um endpoint de serviço.
É assim que você vincula 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 os erros que surgem posteriormente no processo podem ser entregues, normalmente por meio do comando "confirm" 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 | |
---|---|
Retornos |
verdadeiro se estiver completo, caso contrário é falso.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
A verificação se a vinculação é sem custo financeiro.
"Sem custo financeiro" neste contexto significa: "tem um nó de peering definido ID". IsFree() should be thought of as meaning "has had Free() chamado e não é usado desde então".
Detalhes | |
---|---|
Retornos |
verdadeiro se a vinculação for livre, caso contrário é falso.
|
UncompleteRequest
void UncompleteRequest( void )
Fazem com que uma vinculação fique incompleta.
Basicamente, uma vinculação deve estar no estado "incompleto" após esse método ter sido chamado, mas, de maneira mais sutil, qualquer estado relevante não contido na própria vinculação, por exemplo, conexão TCP, também devem ser limpos. Os aplicativos podem considerar invocar UncompleteRequest() como parte da limpeza em caso de erro.
Confira também:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Fazem com que uma vinculação fique incompleta.
Basicamente, uma vinculação deve estar no estado "incompleto" após esse método ter sido chamado, mas, de maneira mais sutil, qualquer estado relevante não contido na própria vinculação, por exemplo, conexão TCP, também devem ser limpos. 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 para objetos Binding.
Limpa todo o estado interno E, se necessário, fecha as conexões abertas.