O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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

O WeaveEchoClient classe implementa lado o iniciador de tecer o protocolo de eco. 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 o WeaveEchoClient classe para enviar one-off ou repetindo mensagens EchoRequest a um peer nó identificado por um Binding objeto. Existe uma classe correspondente para responder a pedidos de eco (ver WeaveEchoServer ).

cliente Encadernação

O WeaveEchoClient leva um Weave Binding objeto que é usado para identificar e estabelecer comunicação com o destinatário dos pedidos de eco. A encadernação pode ser configurado e preparado pela aplicação antes da inicialização da WeaveEchoClient objeto, ou pode ser deixado sem preparação, no caso em que o WeaveEchoClient vai solicitar preparação on-demand da ligação (ver Binding :: RequestPrepare () para detalhes )

On-demand preparação da ligação também será solicitado deve falhar após ter entrado no estado Pronto.

Modo SendRepeating

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

Multicast e Broadcast

A WeaveEchoClient objeto pode ser usado para enviar EchoRequests para vários destinatários simultaneamente, configurando o Binding objeto com um endereço de multicast IPv6 apropriado ou IPv4 endereço de broadcast local (255.255.255.255). Quando o WeaveEchoClient objeto detecta um endereço de multicast ou difusão de pares, ele entra automaticamente no modo multirrespostas mediante envio do 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 multirrespostas até: 1) o aplicativo chama Stop () ou Enviar () , 2) no modo SendRepeating, chega a hora de enviar outro pedido, ou 3) nenhuma resposta for recebida ea receber tempo limite expirar.

Eventos API

Durante o curso de sua operação, o WeaveEchoClient objeto irá chamar-se à aplicação de medidas específicas de solicitação 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 excepção é o total do objecto de desligamento () método, que nunca pode ser chamada durante uma chamada de retorno.

Os seguintes eventos de API são definidos:

PreparePayload

O WeaveEchoClient está prestes a formar uma mensagem de EchoRequest e está solicitando o aplicativo para fornecer 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 pode não alterar o estado do WeaveEchoClient durante este retorno.

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 aguardar 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 é controlada pela propriedade DefaultResponseTimeout sobre o Binding objeto.

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 chega a hora de enviar o próximo EchoRequest. Isso também pode acontecer se o aplicativo chama Enviar () depois de uma EchoRequest foi enviado, mas antes de qualquer resposta é 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 Binding objeto associado com o WeaveEchoClient .
GetEventCallback (void) const
EventCallback
Retorna um ponteiro para a função de evento de retorno de chamada API atualmente configurado no WeaveEchoClient objeto.
GetState (void) const
Recuperar o estado atual da WeaveEchoClient objeto.
Init ( Binding *binding, EventCallback eventCallback, void *appState)
Inicializar um WeaveEchoClient objeto.
IsSendRrepeating () const
bool
Retorna verdadeiro se o WeaveEchoClient objeto está atualmente em modo de repetição de envio.
RequestInProgress () const
bool
Retorna true se um EchoRequest foi enviada eo WeaveEchoClient objeto está aguardando uma resposta.
Send (void)
Envie uma mensagem EchoRequest para o par.
Send (PacketBuffer *payloadBuf)
Envie uma mensagem EchoRequest ao 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 eventos API na WeaveEchoClient objeto.
Shutdown (void)
void
Desligamento anteriormente inicializado um WeaveEchoClient objecto.
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 WeaveEchoClient eventos API.

Structs

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

Parâmetros de entrada para WeaveEchoClient evento API.

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

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

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á esperando que a ligação fique 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 para a próxima vez para enviar uma 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 Binding objeto associado com o WeaveEchoClient .

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

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

GetState

State GetState(
  void
) const 

Recuperar o estado atual da WeaveEchoClient objeto.

Iniciar

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

Inicializar um WeaveEchoClient objeto.

Inicializar um WeaveEchoClient objeto em preparação para o envio de mensagens de eco a um dos pares.

Detalhes
Parâmetros
[in] binding
A ligação objeto que será utilizado para estabelecer comunicação com o nó de pares.
[in] eventCallback
Um ponteiro para uma função que será chamado pelo WeaveEchoClient objeto para entregar eventos da API para o 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 WeaveEchoClient objeto está atualmente em modo de repetição de envio.

RequestInProgress

bool RequestInProgress() const 

Retorna true se um EchoRequest foi enviada eo WeaveEchoClient objeto está aguardando uma resposta.

Mandar

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ó do par. Se e quando uma mensagem EchoResponse correspondente for recebida, ela será entregue ao aplicativo por meio do evento de API ResponseReceived.

Ao formar a mensagem EchoRequest, o WeaveEchoClient faz uma solicitação para a aplicação, via o evento API PreparePayload, para preparar a carga útil da mensagem.

Se o Binding objeto não está no estado Pronto quando este método é chamado, um pedido será feita a ligação :: RequestPrepare () método para iniciar a preparação on-demand. 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 Enviar () enquanto houver um envio anterior na fila irá resultar em apenas uma sendo enviado única EchoRequest.

Chamando Enviar () enquanto o WeaveEchoClient está no modo de repetição de envio (ou seja, por causa de uma chamada anterior a SendRepeating () ) tem o efeito de acelerar e redefinir o ciclo de envio, mas não leva a WeaveEchoClient fora do modo de repetição de envio.

Mandar

WEAVE_ERROR Send(
  PacketBuffer *payloadBuf
)

Envie uma mensagem EchoRequest ao par com uma carga 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.

No ligando este método, a propriedade do tampão de carga fornecido passa para o WeaveEchoClient objecto, que tem a responsabilidade do libertar. Isso é verdadeiro independentemente de o método ser concluído com êxito ou com erro.

Se o Binding objeto não está no estado Pronto quando este método é chamado, um pedido será feita a ligação :: RequestPrepare () método para iniciar a preparação on-demand. A operação de envio será então enfileirada até que o processo seja concluído. A profundidade máxima dessa fila é um. Assim, qualquer chamada para Enviar () enquanto houver um envio anterior na fila irá resultar em apenas uma sendo enviado única EchoRequest.

Chamando Enviar () enquanto o WeaveEchoClient está no modo de repetição de envio (ou seja, por causa de uma chamada anterior a SendRepeating () ) tem o efeito de acelerar e redefinir o ciclo de envio, mas não leva a WeaveEchoClient fora 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. Propriedade deste tampão passa para o WeaveEchoClient objecto 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 modo de repetição de envio em que ele permanece até Stop () é chamado ou um Binding erro ocorre. Chamando SendRepeating () várias vezes tem o efeito de redefinir o ciclo de envio e atualização do intervalo.

O envio inicial de uma sequência ocorre no tempo SendRepeating () é chamado, ou sempre que a encadernação se torne pronto depois SendRepeating () é chamada (ver abaixo). Os envios subsequentes ocorrem depois disso no intervalo especificado.

Cada vez que um envio ocorre, o WeaveEchoClient faz uma solicitação para a aplicação, via o evento API PreparePayload, para preparar a carga útil da mensagem.

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

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Define a função de retorno de eventos API na WeaveEchoClient objeto.

Desligar

void Shutdown(
  void
)

Desligamento anteriormente inicializado um WeaveEchoClient objecto.

Note que este método só pode ser chamado se o Init () método tem 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 WeaveEchoClient eventos API.

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 dos parâmetros do 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