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.

Riepilogo

La classe WeaveEchoServer implementa il lato risponditore del protocollo Weave Echo. Come il protocollo ping ICMP, il protocollo Weave Echo può essere utilizzato per testare l'attività e la raggiungibilità di un nodo Weave.

Le applicazioni possono utilizzare la classe WeaveEchoServer per attivare la risposta automatica ai messaggi EchoRequest in arrivo. Esiste una classe corrispondente per l'avvio di richieste echo (vedi WeaveEchoClient).

Per impostazione predefinita, WeaveEchoServer risponde immediatamente a un'EchoRequest con una risposta contenente lo stesso payload della richiesta. Tuttavia, questo comportamento può essere modificato dall'applicazione durante l'elaborazione dell'evento API EchoRequestReceived.

Eventi API

Nel corso del suo funzionamento, l'oggetto WeaveEchoServer chiamerà l'applicazione per richiedere azioni specifiche o inviare notifiche di eventi importanti. Queste chiamate di eventi API vengono effettuate alla funzione di callback attualmente configurata nell'oggetto server. Salvo dove indicato, le applicazioni sono libere di modificare lo stato del server durante il callback di un evento. Un'eccezione generale è il metodo Shutdown() dell'oggetto, che non può mai essere chiamato durante un callback.

Vengono definiti i seguenti eventi API:

EchoRequestReceived

È stato ricevuto un messaggio EchoRequest da un collega. Gli argomenti dell'evento contengono il payload della richiesta, il contesto di scambio sul quale è stato ricevuto il messaggio e meta-informazioni sul messaggio di richiesta.

Se l'applicazione sceglie, potrebbe modificare gli argomenti di output dell'evento per forzare un ritardo nella risposta o per sopprimere del tutto la risposta. Inoltre, potrebbe modificare i contenuti del buffer del payload, che diventerà il payload per il messaggio di risposta.

EchoResponseSent

Un messaggio EchoResponse è stato inviato o non è stato possibile inviarlo. Gli argomenti dell'evento contengono l'errore derivante dall'invio del messaggio (se presente) e il contesto di scambio tramite il quale il messaggio è stato inviato.

Eredità

Eredita da: nl::Weave::WeaveServerBase
Sottoclassi note dirette: nl::Weave::DeviceLayer::Internal::EchoServer

Costruttori e distruttori

WeaveEchoServer(void)
Costruttore predefinito per WeaveEchoServer.

Tipi pubblici

EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload) typedef
void(*
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam) typedef
void(*
EventType{
  kEvent_EchoRequestReceived = 1,
  kEvent_EchoResponseSent = 2,
  kEvent_DefaultCheck = 100
}
enum

Attributi pubblici

AppState
void *
Un puntatore ai dati specifici dell'applicazione.
OnEchoRequestReceived
EchoFunct

Funzioni pubbliche

GetEventCallback(void) const
EventCallback
Restituisce un puntatore alla funzione di callback dell'evento API attualmente configurata nell'oggetto WeaveEchoServer.
Init(WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState)
Inizializza un oggetto WeaveEchoServer.
Init(WeaveExchangeManager *exchangeMgr)
Inizializza un oggetto WeaveEchoServer.
SetEventCallback(EventCallback eventCallback)
void
Imposta la funzione di callback dell'evento API sull'oggetto WeaveEchoServer.
Shutdown(void)
Arresta un oggetto WeaveEchoServer inizializzato in precedenza.

Funzioni statiche pubbliche

DefaultEventHandler(void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam)
void
Gestore predefinito per gli eventi API WeaveEchoServer.

Strutture

nl::Weave::Profiles::Echo_Next::WeaveEchoServer::InEventParam

I parametri di input per l'evento API WeaveEchoServer.

nl::Weave::Profiles::Echo_Next::WeaveEchoServer::OutEventParam

Parametri di output per l'evento API WeaveEchoServer.

Tipi pubblici

EchoFunct

void(* EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)

EventCallback

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

EventType

 EventType
Proprietà
kEvent_DefaultCheck

Utilizzato per verificare la corretta gestione predefinita degli eventi nell'applicazione.

kEvent_EchoRequestReceived

È stato ricevuto un messaggio EchoRequest da un collega.

kEvent_EchoResponseSent

Un messaggio EchoResponse è stato inviato o non è stato possibile inviarlo.

Attributi pubblici

AppState

void * AppState

Un puntatore ai dati specifici dell'applicazione.

OnEchoRequestReceived

EchoFunct OnEchoRequestReceived

Funzioni pubbliche

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

Restituisce un puntatore alla funzione di callback dell'evento API attualmente configurata nell'oggetto WeaveEchoServer.

Inizia

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr,
  EventCallback eventCallback,
  void *appState
)

Inizializza un oggetto WeaveEchoServer.

Inizializza un oggetto WeaveEchoServer per rispondere ai messaggi echo inviati da un peer.

Dettagli
Parametri
[in] exchangeMgr
Un puntatore all'oggetto WeaveExchangeManager.
[in] eventCallback
Un puntatore a una funzione che verrà chiamata dall'oggetto WeaveEchoServer per inviare eventi API all'applicazione.
[in] appState
Un puntatore a un oggetto definito dall'applicazione che verrà passato nuovamente all'applicazione ogni volta che si verifica un evento API.

Inizia

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr
)

Inizializza un oggetto WeaveEchoServer.

Inizializza un oggetto WeaveEchoServer per rispondere ai messaggi echo inviati da un peer.

OBSOLETO. Utilizza Init(WeaveExchangeManager * ExchangeMgr, EventCallback eventCallback, void * appState).

Dettagli
Parametri
[in] exchangeMgr
Un puntatore all'oggetto WeaveExchangeManager.
[in] eventCallback
Un puntatore a una funzione che verrà chiamata dall'oggetto WeaveEchoServer per inviare eventi API all'applicazione.
[in] appState
Un puntatore a un oggetto definito dall'applicazione che verrà passato nuovamente all'applicazione ogni volta che si verifica un evento API.

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

Imposta la funzione di callback dell'evento API sull'oggetto WeaveEchoServer.

Arresto

WEAVE_ERROR Shutdown(
  void
)

Arresta un oggetto WeaveEchoServer inizializzato in precedenza.

Tieni presente che questo metodo può essere chiamato solo se il metodo Init() è stato chiamato in precedenza.

WeaveEchoServer

 WeaveEchoServer(
  void
)

Costruttore predefinito per WeaveEchoServer.

Funzioni statiche pubbliche

DefaultEventHandler

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

Gestore predefinito per gli eventi API WeaveEchoServer.

Le applicazioni devono chiamare questo metodo per tutti gli eventi API che non riconoscono o non gestiscono. I parametri forniti devono essere gli stessi passati dall'oggetto server alla funzione gestore di eventi dell'applicazione.

Dettagli
Parametri
[in] appState
Un puntatore alle informazioni sullo stato definito dall'applicazione associate all'oggetto server.
[in] eventType
ID evento trasmesso dal callback dell'evento
[in] inParam
Riferimento dei parametri evento di input passati dal callback dell'evento
[in] outParam
Riferimento dei parametri evento di output passati dal callback dell'evento