nl :: Tecer:: Perfis :: DataManagement_Legacy :: Obrigatório
#include <src/lib/profiles/data-management/Legacy/Binding.h>
A classe Binding gerencia o estado de comunicação em nome de uma entidade de aplicativo usando Weave.
Resumo
Quando um aplicativo deseja usar o Weave para se comunicar com uma entidade remota, existe uma grande variedade de opções. A classe Encadernação reúne essas opções e as organiza de forma que as coisas fáceis sejam fáceis e as coisas mais difíceis pelo menos tratáveis. As opções cobertas incluem:
- comunicação UDP unicast com um nó de mesmo nível conhecido.
- Transmissão UDP com "qualquer" nó.
- comunicação unicast WRMP com um nó de mesmo nível conhecido.
- Comunicações TCP com um nó de mesmo nível conhecido.
- Comunicações TCP com um terminal de serviço conhecido usando uma instância do gerenciador de serviço para configurar as coisas.
- Comunicações TCP baseadas em uma conexão pré-estabelecida.
Construtores e Destruidores | |
---|---|
Binding (void) O construtor padrão para objetos Binding . | |
~Binding (void) O destruidor 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 Weave a ser usado. |
mConnection | Um ponteiro para a conexão Weave atualmente em uso nesta ligação. |
mEngine | Um ponteiro para o objeto ProtocolEngine relacionado a este Binding . |
mPeerNodeId | uint64_t O ID do nó de 64 bits do destino de ligaçã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 completar esta Ligação . |
Funções públicas | |
---|---|
CompleteConfirm ( WeaveConnection *aConnection) | void Lidar com a confirmação de uma solicitação de vinculação. |
CompleteConfirm ( StatusReport & aReport) | void Lidar com a falha de uma solicitação de ligação. |
CompleteConfirm (void) | void Lidar com a confirmação de uma solicitação de vinculação. |
CompleteRequest ( ProtocolEngine *aEngine) | Solicite a conclusão de uma ligação. |
Connect ( WeaveConnection *aConnection) | Conclua uma ligação TCP fornecendo uma conexão concluída. |
Finalize (void) | void "Incomplete" uma ligação e libere-a. |
Finalize ( WEAVE_ERROR aErr) | void "Incomplete" uma ligação e libere-a. |
Free (void) | void Limpar o estado de ligação. |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | Produza um objeto ExchangeContext a partir de um Binding . |
IncompleteIndication ( StatusReport & aReport) | void Lidar com a falha de uma encadernação. |
Init (const uint64_t & aPeerNodeId) | Inicialize um Binding com apenas um ID de nó. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | Inicialize um objeto Binding com base no ID do par e no transporte. |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | Inicialize um objeto Binding para um terminal de serviço. |
Init ( WeaveConnection *aConnection) | Inicialize um objeto Binding com um WeaveConnection . |
IsComplete (void) | bool Verifique se a ligação está completa. |
IsFree (void) | bool Verifique se uma ligação é gratuita. |
UncompleteRequest (void) | void Faz com que uma ligação seja incompleta. |
UncompleteRequest ( WEAVE_ERROR aErr) | void Faz com que uma ligação seja incompleta. |
Tipos públicos
@ 165
@165
O conjunto de estados do objeto Binding .
Propriedades | |
---|---|
kState_Complete | O estado de uma Ligação que está completa e pronta para uso. |
kState_Completing | O estado de uma vinculação que está em processo de conclusão. |
kState_Incomplete | O estado inicial (e final) de uma Ligação . |
Atributos públicos
mAuthMode
WeaveAuthMode mAuthMode
O modo de autenticação Weave a ser usado.
(SOMENTE LEITURA)
Este é o modo de autenticação usado em todas as comunicações regidas por esta ligação.
mConnection
WeaveConnection * mConnection
Um ponteiro para a conexão Weave atualmente em uso nesta ligação.
(SOMENTE LEITURA)
As ligaçõ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 este Binding .
Uma vinculação é geralmente concluída com relação a um mecanismo de protocolo específico, que é usado principalmente como uma forma de acessar o MessageLayer. É aqui que o acompanhamos.
mPeerNodeId
uint64_t mPeerNodeId
O ID do nó de 64 bits do destino de ligação.
(SOMENTE LEITURA)
Cada Binding tem uma entidade de destino, que é nomeada aqui. Além de um ID de nó Weave, isso pode nomear um ponto de extremidade de serviço.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Um ponteiro para o objeto ServiceManager (opcional) a ser usado na conclusão dessa ligação.
(SOMENTE LEITURA)
Ao vincular ao serviço Weave, um ID de ponto final de serviço de 64 bits pode ser fornecido no momento da inicialização no lugar de um ID de nó Weave. Nesse caso, um objeto ServiceManager também é necessário para concluir a vinculação. As ligações normais de TCP ou WRMP não requerem um objeto ServiceManager.
mState
uint8_t mState
O estado atual do objeto Binding .
Apenas uma operação "completa" pode ser executada por vez e, em qualquer caso, se você solicitar a conclusão de uma ligação, basta chamar a função de confirmação imediatamente. A variável de estado abaixo rastreia o estado atual e atua como um bloqueio.
mTransport
uint8_t mTransport
O transporte a ser usado para completar esta Ligação .
(SOMENTE LEITURA)
Os valores possíveis para mTransport são definidos em DMConstants.h.
Funções públicas
Obrigatório
Binding( void )
O construtor padrão para objetos Binding .
Limpa todos os estados internos.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Lidar com 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 ligação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm
void CompleteConfirm( void )
Lidar com a confirmação de uma solicitação de vinculação.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Solicite a conclusão de uma ligação.
A conclusão de uma associação é, pelo menos para associações que requerem TCP, realizada com relação a um objeto ProtocolEngine particular, que fornece acesso a uma instância ExchangeManager.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
| ||||||
Devoluções | Caso contrário, qualquer WEAVE_ERROR retornou durante a tentativa de conexão. |
Conectar
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Conclua uma ligação TCP fornecendo uma conexão concluída.
Uma ligação TCP recém-inicializada não pode ser usada até que seja concluída. Normalmente, isso é feito sob demanda quando o aplicativo tenta fazer uso da ligação para enviar mensagens, mas também pode ser concluído explicitamente fornecendo uma conexão Weave.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Finalizar
void Finalize( void )
"Incomplete" uma ligação e libere-a.
As ligações podem ter um estado que requer limpeza, por exemplo, fechamento de conexão, que é tratado pelo método Uncomplete (), além do estado que é simplesmente limpo para seu estado inicial pelo método Free () . Este método, em grande parte por uma questão de conveniência, invoca ambos.
Veja também:Finalizar (WEAVE_ERROR)
Finalizar
void Finalize( WEAVE_ERROR aErr )
"Incomplete" uma ligação e libere-a.
As ligações podem ter um estado que requer limpeza, por exemplo, fechamento de conexão, que é tratado pelo método Uncomplete (), além do estado que é simplesmente limpo para seu estado inicial pelo método Free () . Esse método, em grande parte por uma questão de conveniência, invoca ambos.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Finalizar (vazio)
Livre
void Free( void )
Limpe o estado de ligação.
Retorne incondicionalmente todo o estado de vinculação ao seu estado original.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produza um objeto ExchangeContext a partir de um Binding .
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Devoluções | um ponteiro para um objeto ExchangeContext ou NULL em caso de falha. |
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Lidar com a falha de uma encadernação.
Este método é invocado e, por sua vez, invoca manipuladores de camada superior quando a ligação falha APÓS a conclusão, ou seja, após CompleteConfirm () ter sido invocado com um status denotando sucesso.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm (StatusReport & aReport) .
Iniciar
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicialize um Binding com apenas um ID de nó.
Isso resulta em uma ligação com o transporte padrão configurado.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Iniciar
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Inicialize um objeto Binding com base no ID do par e no transporte.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Iniciar
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicialize um objeto Binding para um terminal de serviço.
É assim que você se vincula a um ponto de extremidade específico no serviço Nest. Uma vinculação desse tipo requer um processo de conclusão de vários estágios, que pode incluir preencher ou atualizar o cache de diretório de serviço local. Na maior parte, esse processo está oculto do aplicativo, mas significa que erros surgidos posteriormente no processo podem ser entregues, normalmente por meio do retorno de chamada "confirmar" relevante, depois - às vezes muito depois - da solicitação original de uso (e completa) A ligação.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Iniciar
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inicialize um objeto Binding com um WeaveConnection .
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Está completo
bool IsComplete( void )
Verifique se a ligação está completa.
Detalhes | |
---|---|
Devoluções | verdadeiro se estiver completo, falso caso contrário. |
CompleteRequest (ProtocolEngine * aEngine)
É grátis
bool IsFree( void )
Verifique se uma ligação é gratuita.
"Livre" neste contexto significa simplesmente "tem um ID de nó de mesmo nível definido". IsFree () deve ser considerado como significando "teve Free () chamado e não foi usado desde então".
Detalhes | |
---|---|
Devoluções | verdadeiro se a ligação for livre, falso caso contrário. |
UncompleteRequest
void UncompleteRequest( void )
Faz com que uma ligação seja incompleta.
Fundamentalmente, uma vinculação deve estar no estado "incompleto" após esse método ter sido chamado, mas, mais sutilmente, qualquer estado relevante não contido na própria vinculação, por exemplo, conexão TCP, deve ser limpo também. Os aplicativos podem considerar invocar UncompleteRequest () como parte da limpeza em caso de erro.
Veja também:UncompleteRequest (WEAVE_ERROR)
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Faz com que uma ligação seja incompleta.
Fundamentalmente, uma vinculação deve estar no estado "incompleto" após esse método ter sido chamado, mas, mais sutilmente, qualquer estado relevante não contido na própria vinculação, por exemplo, conexão TCP, deve ser limpo também. Os aplicativos podem considerar invocar UncompleteRequest () como parte da limpeza em caso de erro.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
UncompleteRequest (void)
~ Ligação
virtual ~Binding( void )
O destruidor de objetos Binding .
Limpa todos os estados internos E, se necessário, fecha as conexões abertas.