nl :: Tecer:: Perfis :: DataManagement_Legacy :: Obrigatório
#include <src/lib/profiles/data-management/Legacy/Binding.h>
O Binding classe gerencia o estado de comunicação em nome de uma entidade 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. O Binding classe currais estas opções e as organiza de tal forma que o material fácil é fácil e as coisas mais difíceis é, pelo menos tratável. 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 encadernação objetos. | |
~Binding (void) O destruidor para Binding objetos. |
Tipos públicos | |
---|---|
@165 { | enum O conjunto de encadernação estados de objeto. |
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 apontador para a ProtocolEngine objecto relacionado com esta encadernação . |
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 A corrente Binding estado do objeto. |
mTransport | uint8_t O transporte a ser usado na realização deste Binding . |
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 vinculaçã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 completa. |
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 Limpe o estado de ligação. |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | Produzir um ExchangeContext objecto a partir de uma encadernação . |
IncompleteIndication ( StatusReport & aReport) | void Lidar com a falha de uma encadernação. |
Init (const uint64_t & aPeerNodeId) | Inicializar uma ligação com apenas um ID de nó. |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | Inicializar um Binding objeto com base na identificação de pares e transporte. |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | Inicializar um Binding objeto para um ponto de extremidade de serviço. |
Init ( WeaveConnection *aConnection) | Inicializar um Binding objecto com um WeaveConnection . |
IsComplete (void) | bool Verifique se a ligação foi concluída. |
IsFree (void) | bool Verifique se uma ligação é gratuita. |
UncompleteRequest (void) | void Faz com que uma ligação esteja incompleta. |
UncompleteRequest ( WEAVE_ERROR aErr) | void Faz com que uma ligação esteja incompleta. |
Tipos públicos
@ 165
@165
O conjunto de encadernação estados de objeto.
Propriedades | |
---|---|
kState_Complete | O estado de uma ligação que está completo e pronto para uso. |
kState_Completing | O estado de uma ligação que está em vias de ser concluída. |
kState_Incomplete | O estado inicial (e final) de uma encadernaçã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 apontador para a ProtocolEngine objecto relacionado com esta encadernação .
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 é chamado 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 vinculaçã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
A corrente Binding estado do objeto.
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 na realização deste Binding .
(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 encadernação objetos.
Limpa todos os estados internos.
ConcluirConfirmar
void CompleteConfirm( WeaveConnection *aConnection )
Lidar com a confirmação de uma solicitação de vinculação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
ConcluirConfirmar
void CompleteConfirm( StatusReport & aReport )
Lidar com a falha de uma solicitação de ligação.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
ConcluirConfirmar
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 ligação é, pelo menos, para que requerem ligações TCP, realizados no que diz respeito a um determinado ProtocolEngine objeto, que fornece o acesso a uma instância ExchangeManager.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
| ||||||
Devoluções | Caso contrário, qualquer WEAVE_ERROR retornou ao tentar conectar. |
Conectar
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Conclua uma ligação TCP fornecendo uma conexão completa.
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 explicitamente concluído fornecendo uma conexão Weave.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Finalizar
void Finalize( void )
"Incomplete" uma ligação e libere-a.
Ligações pode ter estado que requer a limpeza, por exemplo, ligação de fecho, o qual é tratado pelo método uncomplete () além de estado que é simplesmente apagada ao seu estado inicial pelo Livre () método. Esse 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.
Ligações pode ter estado que requer a limpeza, por exemplo, ligação de fecho, o qual é tratado pelo método uncomplete () além de estado que é simplesmente apagada ao seu estado inicial pelo Livre () método. 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 )
Produzir um ExchangeContext objecto a partir de uma encadernação .
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Devoluções | um ponteiro para uma ExchangeContext objeto, ou NULL em caso de falha. |
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Lidar com a falha de uma encadernação.
Este método é chamado e, por sua vez, invoca manipuladores de camadas mais altas quando a ligação falha após a conclusão, isto é, após CompleteConfirm () foi executado com um sucesso denotando estado.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
CompleteConfirm (StatusReport & areport) .
Iniciar
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inicializar uma ligação 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 )
Inicializar um Binding objeto com base na identificação de pares e transporte.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Iniciar
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inicializar um Binding objeto para um ponto de extremidade 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, este processo está 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 de uso (e completa) A ligação.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Iniciar
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inicializar um Binding objecto com um WeaveConnection .
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Está completo
bool IsComplete( void )
Verifique se a ligação foi concluída.
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 pensado no sentido de "teve Grátis () chamado sobre ele e não tem sido usado desde".
Detalhes | |
---|---|
Devoluções | verdadeiro se a ligação for livre, falso caso contrário. |
UncompleteRequest
void UncompleteRequest( void )
Faz com que uma ligação esteja incompleta.
Fundamentalmente, uma ligaçã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 ligação, por exemplo, conexão TCP, deve ser limpo também. As candidaturas podem considerar invocando UncompleteRequest () como parte da limpeza em erro.
Veja também:UncompleteRequest (WEAVE_ERROR)
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Faz com que uma ligação esteja incompleta.
Fundamentalmente, uma ligaçã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 ligação, por exemplo, conexão TCP, deve ser limpo também. As candidaturas podem considerar invocando UncompleteRequest () como parte da limpeza em erro.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
UncompleteRequest (void)
~ Ligação
virtual ~Binding( void )
O destruidor para Binding objetos.
Limpa todos os estados internos E, se necessário, fecha as conexões abertas.