nl:: Weave:: Profiles:: Echo_Next:: WeaveEchoServer
#include <src/lib/profiles/echo/Next/WeaveEchoServer.h>
Accepts EchoRequest messages from a peer node and responds with an EchoResponse message.
Resumo
A classe WeaveEchoServer implementa o lado do respondente do protocolo Weave Echo. Semelhante ao protocolo de ping ICMP, o protocolo Weave Echo pode ser usado para testar a atividade e a acessibilidade de um nó do Weave.
Os aplicativos podem usar a classe WeaveEchoServer para ativar a resposta automática para mensagens de EchoRequest recebidas. Uma classe correspondente existe para iniciar solicitações de eco (consulte WeaveEchoClient).
Por padrão, o WeaveEchoServer responde imediatamente a um EchoRequest com uma resposta contendo o mesmo payload da solicitação. No entanto, esse comportamento pode ser alterado pelo aplicativo durante o processamento do evento da API EchoRequestReceived.
Eventos da API
Durante a operação, o objeto WeaveEchoServer chama o aplicativo para solicitar ações específicas ou enviar notificações de eventos importantes. Essas chamadas de eventos de API são feitas para a função de callback atualmente configurada no objeto do servidor. Exceto quando indicado, os aplicativos podem alterar o estado do servidor durante um callback de evento. Uma exceção geral é o método Shutdown() do objeto, que pode nunca ser chamado durante um callback.
Os seguintes eventos de API estão definidos:
EchoRequestReceived
Uma mensagem de EchoRequest foi recebida de um colega. Os argumentos para o evento contêm o payload da solicitação, o contexto de troca pela qual a mensagem foi recebida e as metainformações sobre ela.
Se quiser, o aplicativo pode alterar os argumentos de saída para o evento para forçar um atraso na resposta ou suprimir completamente a resposta. Além disso, ele pode alterar o conteúdo do buffer de payload, que se tornará o payload da mensagem de resposta.
EchoResponseSent
Uma mensagem de EchoResponse foi enviada ou falhou ao ser enviada. Os argumentos para o evento contêm o erro que resultou do envio da mensagem (se houver) e o contexto de troca pela qual a mensagem foi enviada.
Herança
Herda de: nl::Weave::WeaveServerBaseSubclasses conhecidas diretas: nl::Weave::DeviceLayer::Internal::EchoServer
Construtores e destruidores |
|
---|---|
WeaveEchoServer(void)
Construtor padrão para WeaveEchoServer.
|
Tipos públicos |
|
---|---|
EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)
|
typedefvoid(*
|
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)
|
typedefvoid(*
|
EventType{
|
enum |
Atributos públicos |
|
---|---|
AppState
|
void *
Um ponteiro para dados específicos do aplicativo.
|
OnEchoRequestReceived
|
EchoFunct
|
Funções públicas |
|
---|---|
GetEventCallback(void) const
|
EventCallback
Retorna um ponteiro para a função de callback do evento da API configurada no momento no objeto WeaveEchoServer.
|
Init(WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState)
|
Inicialize um objeto WeaveEchoServer.
|
Init(WeaveExchangeManager *exchangeMgr)
|
Inicialize um objeto WeaveEchoServer.
|
SetEventCallback(EventCallback eventCallback)
|
void
Define a função de retorno de chamada do evento da API no objeto WeaveEchoServer.
|
Shutdown(void)
|
Encerra um objeto WeaveEchoServer inicializado anteriormente.
|
Funções estáticas públicas |
|
---|---|
DefaultEventHandler(void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam)
|
void
Gerenciador padrão para eventos da API WeaveEchoServer.
|
Estruturas |
|
---|---|
nl:: |
Parâmetros de entrada para o evento da API WeaveEchoServer. |
nl:: |
Parâmetros de saída para o evento da API WeaveEchoServer. |
Tipos públicos
EchoFunct
void(* EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)
EventCallback
void(* EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)
EventType
EventType
Propriedades | |
---|---|
kEvent_DefaultCheck
|
Usado para verificar o tratamento correto do evento padrão no aplicativo. |
kEvent_EchoRequestReceived
|
Uma mensagem de EchoRequest foi recebida de um colega. |
kEvent_EchoResponseSent
|
Uma mensagem de EchoResponse foi enviada ou falhou ao ser enviada. |
Atributos públicos
AppState
void * AppState
Um ponteiro para dados específicos do aplicativo.
OnEchoRequestReceived
EchoFunct OnEchoRequestReceived
Funções públicas
GetEventCallback
EventCallback GetEventCallback( void ) const
Retorna um ponteiro para a função de callback do evento da API configurada no momento no objeto WeaveEchoServer.
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState )
Inicialize um objeto WeaveEchoServer.
Inicialize um objeto WeaveEchoServer para responder a mensagens de eco de um peer.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr )
Inicialize um objeto WeaveEchoServer.
Inicialize um objeto WeaveEchoServer para responder a mensagens de eco de um peer.
OBSOLETO: use Init(WeaveExchangeManager * ExchangeMgr, EventCallback eventCallback, void * appState).
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
SetEventCallback
void SetEventCallback( EventCallback eventCallback )
Define a função de retorno de chamada do evento da API no objeto WeaveEchoServer.
Encerramento
WEAVE_ERROR Shutdown( void )
Encerra um objeto WeaveEchoServer inicializado anteriormente.
Observe que esse método só poderá ser chamado se o método Init() já tiver sido chamado anteriormente.
Funções estáticas públicas
DefaultEventHandler
void DefaultEventHandler( void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam )
Gerenciador padrão para eventos da API WeaveEchoServer.
Os aplicativos precisam chamar esse método para qualquer evento da API que não reconheçam ou não consigam processar. Os parâmetros fornecidos precisam ser os mesmos passados pelo objeto do servidor para a função de manipulador de eventos do aplicativo.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|