O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

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 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
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
[in] aConnection
Um ponteiro para um WeaveConnection ativo para o destino de vinculação.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Lidar com a falha de uma solicitação de ligação.

Detalhes
Parâmetros
[in] aReport
Uma referência a um objeto StatusReport que descreve a falha.

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
[in] aEngine
Um ponteiro para um objeto ProtocolEngine em nome do qual a conclusão está sendo executada.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INCORRECT_STATE
se a ligação já estiver sendo concluída.
WEAVE_ERROR_NO_MEMORY
Se uma conexão for necessária e nenhuma estiver disponível
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
[in] aConnection
Um ponteiro para um WeaveConnection usado para completar a ligação.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INCORRECT_STATE
Se a ligação já tiver uma conexão.
WEAVE_ERROR_INVALID_ARGUMENT
Se a conexão for NULL.

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
[in] aErr
Este código de erro indica a causa desta solicitação. Se não for WEAVE_NO_ERROR, a conexão TCP pode ser abortada.
Veja também:
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
[in] aExchangeMgr
Um ponteiro para o gerenciador de troca do qual solicitar um contexto.
[in] aAppState
Um ponteiro void para um objeto de estado do aplicativo a ser armazenado no contexto de troca para uso posterior.
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
[in] aReport
Uma referência a um StatusReport que descreve o que deu errado.
Veja também:
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
[in] aPeerNodeId
Uma referência ao ID de 64 bits do alvo de ligação.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_ARGUMENT
Se a ligação estiver subespecificada.

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
[in] aPeerNodeId
Uma referência ao identificador de nó de 64 bits do alvo de ligação.
[in] aTransport
A especificação de transporte, de WeaveTransportOption.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_ARGUMENT
Se a ligação estiver subespecificada.

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
[in] aServiceEpt
Uma referência ao identificador de 64 bits para o ponto de extremidade do Weave Service de interesse.
[in] aServiceMgr
Um ponteiro para a instância do gerenciador de serviço a ser usado na pesquisa de uma camada de serviço e conexão com ela.
[in] aAuthMode
O modo de autenticação a ser usado na conexão.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_ARGUMENT
Se a ligação estiver subespecificada.

Iniciar

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Inicialize um objeto Binding com um WeaveConnection .

Detalhes
Parâmetros
[in] aConnection
Um ponteiro para um WeaveConnection para usar como base para a vinculação.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
WEAVE_ERROR_INVALID_ARGUMENT
Se a ligação estiver subespecificada.

Está completo

bool IsComplete(
  void
)

Verifique se a ligação está completa.

Detalhes
Devoluções
verdadeiro se estiver completo, falso caso contrário.
Veja também:
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
[in] aErr
Se não for WEAVE_NO_ERROR, a conexão existente, se houver, seria abortada em vez de fechada normalmente.
Veja também:
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.