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::WeaveServerBaseSottoclassi 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)
|
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 API WeaveEchoServer.
|
Strutture |
|
---|---|
nl:: |
I 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 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 |
|
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 |
|
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.
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 |
|