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. Analogamente al 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 abilitare la risposta automatica ai messaggi EchoRequest in arrivo. Esiste una classe corrispondente per avviare richieste echo (vedi WeaveEchoClient).
Per impostazione predefinita, WeaveEchoServer risponde immediatamente a una richiesta 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 dell'operazione, l'oggetto WeaveEchoServer richiama 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 un callback di evento. Un'eccezione generale è il metodo Shutdown() dell'oggetto, che potrebbe non essere mai chiamato durante un callback.
Sono definiti i seguenti eventi API:
EchoRequestReceived
Un collega ha ricevuto un messaggio EchoRequest. Gli argomenti dell'evento contengono il payload della richiesta, il contesto dello scambio su cui è stato ricevuto il messaggio e le meta-informazioni sul messaggio di richiesta.
Se l'applicazione sceglie questa opzione, potrebbe modificare gli argomenti di output in base all'evento per forzare un ritardo nella risposta o per eliminare completamente la risposta. Inoltre, potrebbe modificare i contenuti del buffer di payload, che diventerà il payload per il messaggio di risposta.
EchoResponseSent
Un messaggio EchoResponse è stato inviato o non è stato inviato. Gli argomenti dell'evento contengono l'errore derivante dall'invio del messaggio (se presente) e il contesto dello scambio a cui il messaggio è stato inviato.
Eredità
Eredita da: nl::Weave::WeaveServerBaseSottoclassi note direttamente: nl::Weave::DeviceLayer::Internal::EchoServer
Costruttori e distruttori |
|
---|---|
WeaveEchoServer(void)
Costruttore predefinito per WeaveEchoServer.
|
Tipi pubblici |
|
---|---|
EchoFunct)(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer *payload)
|
typedefvoid(*
|
EventCallback)(void *appState, EventType eventType, const InEventParam &inParam, OutEventParam &outParam)
|
typedefvoid(*
|
EventType{
|
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 dell'API WeaveEchoServer.
|
Structs |
|
---|---|
nl:: |
Parametri di input per l'evento API WeaveEchoServer. |
nl:: |
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 degli eventi predefiniti nell'applicazione. |
kEvent_EchoRequestReceived
|
Un collega ha ricevuto un messaggio EchoRequest. |
kEvent_EchoResponseSent
|
Un messaggio EchoResponse è stato inviato o non è stato inviato. |
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.
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState )
Inizializza un oggetto WeaveEchoServer.
Inizializza un oggetto WeaveEchoServer per rispondere ai messaggi echo di un peer.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
Init
WEAVE_ERROR Init( WeaveExchangeManager *exchangeMgr )
Inizializza un oggetto WeaveEchoServer.
Inizializza un oggetto WeaveEchoServer per rispondere ai messaggi echo di un peer.
OBSOLETO: utilizza Init(WeaveExchangeManager * exchangeMgr, EventCallback eventCallback, void * appState).
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
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() è già stato richiamato in precedenza.
Funzioni statiche pubbliche
DefaultEventHandler
void DefaultEventHandler( void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam )
Gestore predefinito per gli eventi dell'API WeaveEchoServer.
Le applicazioni devono chiamare questo metodo per eventuali eventi API che non riconoscono o non gestiscono. I parametri forniti devono essere gli stessi trasmessi dall'oggetto server alla funzione di gestore di eventi dell'applicazione.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|