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 que responde 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 a mensagens EchoRequest recebidas. Existe uma classe correspondente para iniciar solicitações de eco (consulte WeaveEchoClient).
Por padrão, o WeaveEchoServer responde imediatamente a um EchoRequest com resposta contendo o mesmo payload que a 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 evento de API são feitas para a função de callback atualmente configurada no objeto do servidor. Exceto quando indicado, os aplicativos são livres para 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 da API são definidos:
EchoRequestReceived
Uma mensagem EchoRequest foi recebida de um usuário. Os argumentos para o evento contêm o payload da solicitação, o contexto de troca em que a mensagem foi recebida e as metainformações sobre a mensagem de solicitação.
Se o aplicativo quiser, ele pode alterar os argumentos de saída para o evento a fim de 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 EchoResponse foi enviada ou falhou ao enviar. Os argumentos para o evento contêm o erro resultante do envio da mensagem (se houver) e o contexto da troca pelo qual a mensagem foi enviada.
Herança
Herdar de: nl::Weave::WeaveServerBaseSubclasses conhecidas diretas: nl::Weave::DeviceLayer::Internal::EchoServer
Construtores e destrutores |
|
---|---|
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 atualmente configurada 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 callback 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 de 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 gerenciamento correto de eventos padrão no aplicativo. |
kEvent_EchoRequestReceived
|
Uma mensagem EchoRequest foi recebida de um usuário. |
kEvent_EchoResponseSent
|
Uma mensagem EchoResponse foi enviada ou falhou ao enviar. |
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 atualmente configurada 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 peering.
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 peering.
OBSOLETO: use Init(Weave ExchangeManager * ExchangeMgr, EventCallback eventCallback, void * appState).
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
SetEventCallback
void SetEventCallback( EventCallback eventCallback )
Define a função de callback do evento da API no objeto WeaveEchoServer.
Desligamento
WEAVE_ERROR Shutdown( void )
Encerra um objeto WeaveEchoServer inicializado anteriormente.
Esse método só poderá ser chamado se o método Init() 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 de eventos da API WeaveEchoServer.
Os aplicativos precisam chamar esse método para eventos da API que não reconhecerem ou manipularem. Os parâmetros fornecidos devem ser iguais aos passados pelo objeto do servidor para a função do manipulador de eventos do aplicativo.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|