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 :: Echo_Next :: WeaveEchoClient

#include <src/lib/profiles/echo/Next/WeaveEchoClient.h>

Provides the ability to send Weave EchoRequest messages to a peer node and receive
the corresponding EchoResponse messages.

Resumo

A classe WeaveEchoClient implementa o lado do iniciador do protocolo Weave Echo. Semelhante ao protocolo de ping ICMP, o protocolo Weave Echo pode ser usado para testar a vivacidade e acessibilidade de um nó Weave.

Os aplicativos podem usar a classe WeaveEchoClient para enviar mensagens EchoRequest únicas ou repetidas para um nó de mesmo nível identificado por um objeto Binding . Existe uma classe correspondente para responder às solicitações de eco (consulte WeaveEchoServer ).

Client Binding

O WeaveEchoClient pega um objeto Weave Binding que é usado para identificar e estabelecer comunicação com o destinatário pretendido das solicitações de eco. O Binding pode ser configurado e preparado pelo aplicativo antes da inicialização do objeto WeaveEchoClient , ou pode ser deixado despreparado, caso em que o WeaveEchoClient irá solicitar a preparação sob demanda do binding (veja Binding :: RequestPrepare () para detalhes )

A preparação sob demanda da Encadernação também será solicitada caso ela falhe após ter entrado no estado Pronto.

Modo SendRepeating

O método SendRepeating () pode ser usado para colocar o WeaveEchoClient no modo SendRepeating. Neste modo, o objeto cliente envia uma sequência repetitiva de mensagens EchoRequest para o par em um intervalo configurado. O modo SendRepeating pode ser cancelado chamando o método Stop () .

Multicast e Broadcast

Um objeto WeaveEchoClient pode ser usado para enviar EchoRequests para vários destinatários simultaneamente, configurando o objeto Binding com um endereço multicast IPv6 apropriado ou endereço de difusão de rede local IPv4 (255.255.255.255). Quando o objeto WeaveEchoClient detecta um endereço de peer multicast ou broadcast, ele entra automaticamente no modo MultiResponse ao enviar o EchoRequest.

Neste modo, o objeto continua a escutar e entregar todas as mensagens EchoResponse de entrada que chegam na mesma central. O objeto permanece no modo MultiResponse até: 1) o aplicativo chamar Stop () ou Send () , 2) no modo SendRepeating, chegar a hora de enviar outra solicitação ou 3) nenhuma resposta ser recebida e o tempo limite de recebimento expirar.

Eventos API

Durante o curso de sua operação, o objeto WeaveEchoClient chamará o aplicativo para solicitar ações específicas ou entregar notificações de eventos importantes. Essas chamadas de eventos de API são feitas para a função de retorno de chamada atualmente configurada no objeto cliente. Exceto onde indicado, os aplicativos são livres para alterar o estado do cliente durante um retorno de chamada de evento. Uma exceção geral é o método Shutdown () do objeto, que nunca pode ser chamado durante um retorno de chamada.

Os seguintes eventos de API são definidos:

PreparePayload

O WeaveEchoClient está prestes a formar uma mensagem EchoRequest e está solicitando que o aplicativo forneça uma carga útil. Se um aplicativo desejar, ele pode retornar um novo PacketBuffer contendo os dados de carga útil. Se o aplicativo não manipular esse evento, um EchoRequest com uma carga útil de comprimento zero será enviado automaticamente. O aplicativo NÃO PODE alterar o estado do WeaveEchoClient durante esse retorno de chamada.

RequestSent

Uma mensagem EchoRequest foi enviada ao par.

ResponseReceived

Uma mensagem EchoResponse foi recebida do par. Os argumentos para o evento contêm a carga útil da resposta e meta-informações sobre a mensagem de resposta.

Erro de comunicação

Ocorreu um erro ao formar ou enviar um EchoRequest ou ao esperar por uma resposta. Exemplos de erros que podem ocorrer durante a espera por uma resposta são erros de chave ou fechamento inesperado de uma conexão. Os argumentos do evento contêm o motivo do erro.

ResponseTimeout

Um EchoResponse não foi recebido no tempo alocado. O tempo limite de resposta é controlado pela propriedade DefaultResponseTimeout no objeto Binding .

RequestAborted

Uma troca de eco em andamento foi abortada porque uma solicitação foi feita para enviar outro EchoRequest antes que uma resposta fosse recebida para a mensagem anterior. Isso pode surgir no modo SendRepeating quando chegar a hora de enviar o próximo EchoRequest. Isso também pode acontecer se o aplicativo chamar Send () após um EchoRequest ter sido enviado, mas antes de qualquer resposta ser recebida.

Quando o objeto está no modo MultiResponse, o evento é suprimido se pelo menos uma mensagem EchoResponse for recebida.

Construtores e Destruidores

WeaveEchoClient (void)

Tipos públicos

EventCallback )(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
EventType {
kEvent_PreparePayload = 1,
kEvent_RequestSent = 2,
kEvent_ResponseReceived = 3,
kEvent_CommunicationError = 4,
kEvent_ResponseTimeout = 5,
kEvent_RequestAborted = 6,
kEvent_DefaultCheck = 100
}
enum
State {
kState_NotInitialized = 0,
kState_Idle = 1,
kState_PreparingBinding = 2,
kState_RequestInProgress = 3,
kState_WaitingToSend = 4
}
enum

Atributos públicos

AppState
void *
Um ponteiro para dados específicos do aplicativo.

Funções públicas

GetBinding (void) const
Retorna um ponteiro para o objeto Binding associado ao WeaveEchoClient .
GetEventCallback (void) const
EventCallback
Retorna um ponteiro para a função de retorno de chamada do evento API atualmente configurada no objeto WeaveEchoClient .
GetState (void) const
Recupere o estado atual do objeto WeaveEchoClient .
Init ( Binding *binding, EventCallback eventCallback, void *appState)
Inicialize um objeto WeaveEchoClient .
IsSendRrepeating () const
bool
Retorna verdadeiro se o objeto WeaveEchoClient estiver no modo de repetição de envio.
RequestInProgress () const
bool
Retorna verdadeiro se um EchoRequest foi enviado e o objeto WeaveEchoClient está aguardando uma resposta.
Send (void)
Envie uma mensagem EchoRequest ao par.
Send (PacketBuffer *payloadBuf)
Envie uma mensagem EchoRequest para o par com uma carga útil específica.
SendRepeating (uint32_t sendIntervalMS)
Inicie o envio de uma sequência repetitiva de mensagens EchoRequest para o par.
SetEventCallback (EventCallback eventCallback)
void
Define a função de retorno de chamada do evento API no objeto WeaveEchoClient .
Shutdown (void)
void
Desligue um objeto WeaveEchoClient inicializado anteriormente.
Stop (void)
void
Interrompe qualquer troca de eco em andamento e cancela o modo de repetição de envio.

Funções estáticas públicas

DefaultEventHandler (void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam)
void
Manipulador padrão para eventos da API WeaveEchoClient .

Structs

nl :: Weave :: Profiles :: Echo_Next :: WeaveEchoClient :: InEventParam

Parâmetros de entrada para o evento da API WeaveEchoClient .

nl :: Weave :: Profiles :: Echo_Next :: WeaveEchoClient :: OutEventParam

Parâmetros de saída para o evento da API WeaveEchoClient .

Tipos públicos

EventCallback

void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)

Tipo de evento

 EventType
Propriedades
kEvent_CommunicationError

Ocorreu um erro de comunicação ao enviar um EchoRequest ou aguardar uma resposta.

kEvent_DefaultCheck

Usado para verificar o tratamento de eventos padrão correto no aplicativo.

kEvent_PreparePayload

O aplicativo é solicitado a preparar a carga útil para a solicitação Echo.

kEvent_RequestAborted

Uma troca de eco em andamento foi abortada porque uma solicitação foi feita para iniciar outra troca.

kEvent_RequestSent

Uma mensagem EchoRequest foi enviada ao par.

kEvent_ResponseReceived

Uma mensagem EchoResponse foi recebida do par.

kEvent_ResponseTimeout

Um EchoResponse não foi recebido no tempo alocado.

Estado

 State
Propriedades
kState_Idle

O objeto cliente está ocioso.

kState_NotInitialized

O objeto cliente não foi inicializado.

kState_PreparingBinding

O objeto cliente está aguardando que a ligação esteja pronta.

kState_RequestInProgress

Uma mensagem EchoRequest foi enviada e o objeto cliente está aguardando uma resposta.

kState_WaitingToSend

SendRepeating () foi chamado e o objeto cliente está esperando a próxima vez para enviar um EchoRequest.

Atributos públicos

AppState

void * AppState

Um ponteiro para dados específicos do aplicativo.

Funções públicas

GetBinding

Binding * GetBinding(
  void
) const 

Retorna um ponteiro para o objeto Binding associado ao WeaveEchoClient .

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Retorna um ponteiro para a função de retorno de chamada do evento API atualmente configurada no objeto WeaveEchoClient .

GetState

State GetState(
  void
) const 

Recupere o estado atual do objeto WeaveEchoClient .

Iniciar

WEAVE_ERROR Init(
  Binding *binding,
  EventCallback eventCallback,
  void *appState
)

Inicialize um objeto WeaveEchoClient .

Inicialize um objeto WeaveEchoClient na preparação para enviar mensagens de eco a um par.

Detalhes
Parâmetros
[in] binding
Um objeto Binding que será usado para estabelecer comunicação com o nó par.
[in] eventCallback
Um ponteiro para uma função que será chamada pelo objeto WeaveEchoClient para entregar eventos de API ao aplicativo.
[in] appState
Um ponteiro para um objeto definido pelo aplicativo que será passado de volta ao aplicativo sempre que ocorrer um evento de API.

IsSendRrepeating

bool IsSendRrepeating() const 

Retorna verdadeiro se o objeto WeaveEchoClient estiver no modo de repetição de envio.

RequestInProgress

bool RequestInProgress() const 

Retorna verdadeiro se um EchoRequest foi enviado e o objeto WeaveEchoClient está aguardando uma resposta.

Enviar

WEAVE_ERROR Send(
  void
)

Envie uma mensagem EchoRequest ao par.

Este método inicia o processo de envio de uma mensagem EchoRequest para o nó par. Se e quando uma mensagem EchoResponse correspondente for recebida, ela será entregue ao aplicativo por meio do evento ResponseReceived API.

Ao formar a mensagem EchoRequest, o WeaveEchoClient faz uma solicitação ao aplicativo, por meio do evento PreparePayload API, para preparar o payload da mensagem.

Se o objeto Binding não estiver no estado Pronto quando este método for chamado, uma solicitação será feita ao método Binding :: RequestPrepare () para iniciar a preparação sob demanda. A operação de envio será então enfileirada até que o processo seja concluído. A profundidade máxima dessa fila é um. Portanto, qualquer chamada para Send () enquanto houver um envio anterior na fila resultará no envio de apenas um único EchoRequest.

Chamar Send () enquanto o WeaveEchoClient está no modo de repetição de envio (ou seja, devido a uma chamada anterior para SendRepeating () ) tem o efeito de acelerar e redefinir o ciclo de envio, mas não tira o WeaveEchoClient do modo de repetição de envio.

Enviar

WEAVE_ERROR Send(
  PacketBuffer *payloadBuf
)

Envie uma mensagem EchoRequest ao par com uma carga útil específica.

Este método inicia o processo de envio de uma mensagem EchoRequest para o nó do par. O conteúdo do buffer de carga útil fornecido será enviado ao par como a carga útil da mensagem EchoRequest. Se e quando uma mensagem EchoResponse correspondente for recebida, ela será entregue ao aplicativo por meio do evento de API ResponseReceived.

Ao chamar esse método, a propriedade do buffer de carga útil fornecida passa para o objeto WeaveEchoClient , que tem a responsabilidade de liberá -lo. Isso é verdadeiro independentemente de o método ser concluído com êxito ou com erro.

Se o objeto Binding não estiver no estado Pronto quando este método for chamado, uma solicitação será feita ao método Binding :: RequestPrepare () para iniciar a preparação sob demanda. A operação de envio será enfileirada até que o processo seja concluído. A profundidade máxima dessa fila é um. Assim, qualquer chamada para Send () enquanto houver um envio anterior na fila resultará em apenas um único EchoRequest sendo enviado.

Chamar Send () enquanto o WeaveEchoClient está no modo de repetição de envio (ou seja, por causa de uma chamada anterior para SendRepeating () ) tem o efeito de acelerar e redefinir o ciclo de envio, mas não tira o WeaveEchoClient do modo de repetição de envio.

Detalhes
Parâmetros
[in] payloadBuf
Um objeto PacketBuffer contendo dados de carga útil a serem enviados ao par. A propriedade desse buffer passa para o objeto WeaveEchoClient em todos os casos.

SendRepeating

WEAVE_ERROR SendRepeating(
  uint32_t sendIntervalMS
)

Inicie o envio de uma sequência repetitiva de mensagens EchoRequest para o par.

Este método inicia um processo de repetição de envio de mensagens EchoRequest para o par. Conforme as mensagens do EchoResponse são recebidas do par, elas são entregues ao aplicativo por meio do evento da API ResponseReceived.

Quando SendRepeating () é chamado, o WeaveEchoClient entra no modo de repetição de envio, no qual permanece até que Stop () seja chamado ou ocorra um erro de Binding . Chamar SendRepeating () várias vezes tem o efeito de redefinir o ciclo de envio e atualizar o intervalo.

O envio inicial de uma sequência ocorre no momento em que SendRepeating () é chamado ou sempre que o Binding fica pronto depois que SendRepeating () é chamado (veja abaixo). Os envios subsequentes ocorrem depois disso no intervalo especificado.

Cada vez que ocorre um envio, o WeaveEchoClient faz uma solicitação ao aplicativo, por meio do evento PreparePayload API, para preparar o payload da mensagem.

Se o objeto Binding não estiver no estado Pronto quando chegar a hora de enviar uma mensagem, uma solicitação será feita ao método Binding :: RequestPrepare () para iniciar a preparação sob demanda. Outros envios repetidos de mensagens serão pausados ​​até que o processo seja concluído. Uma falha durante a preparação de vinculação sob demanda fará com que o WeaveEchoClient saia do modo de repetição de envio.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Define a função de retorno de chamada do evento API no objeto WeaveEchoClient .

Desligar

void Shutdown(
  void
)

Desligue um objeto WeaveEchoClient inicializado anteriormente.

Observe que esse método só pode ser chamado se o método Init () tiver sido chamado anteriormente.

Pare

void Stop(
  void
)

Interrompe qualquer troca de eco em andamento e cancela o modo de repetição de envio.

WeaveEchoClient

 WeaveEchoClient(
  void
)

Funções estáticas públicas

DefaultEventHandler

void DefaultEventHandler(
  void *appState,
  EventType eventType,
  const InEventParam & inParam,
  OutEventParam & outParam
)

Manipulador padrão para eventos da API WeaveEchoClient .

Os aplicativos são obrigados a chamar esse método para quaisquer eventos de API que eles não reconhecem ou manipulam. Os parâmetros fornecidos devem ser iguais aos passados ​​pelo objeto cliente para a função de manipulador de eventos do aplicativo.

Detalhes
Parâmetros
[in] appState
Um ponteiro para informações de estado definidas pelo aplicativo associadas ao objeto cliente.
[in] eventType
ID do evento passado pelo retorno de chamada do evento
[in] inParam
Referência de parâmetros de evento de entrada passados ​​pelo retorno de chamada do evento
[in] outParam
Referência dos parâmetros do evento de saída passados ​​pelo retorno de chamada do evento