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::WeaveServerBase
Sottoclassi 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) 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 dell'API WeaveEchoServer.

Structs

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

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 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
[in] exchangeMgr
Un puntatore all'oggetto WeaveExchangeManager.
[in] eventCallback
Un puntatore a una funzione che verrà chiamata dall'oggetto WeaveEchoServer per distribuire gli eventi API all'applicazione.
[in] appState
Un puntatore a un oggetto definito dall'applicazione che verrà restituito all'applicazione ogni volta che si verifica un evento API.

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
[in] exchangeMgr
Un puntatore all'oggetto WeaveExchangeManager.
[in] eventCallback
Un puntatore a una funzione che verrà chiamata dall'oggetto WeaveEchoServer per distribuire gli eventi API all'applicazione.
[in] appState
Un puntatore a un oggetto definito dall'applicazione che verrà restituito 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() è già stato richiamato 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 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
[in] appState
Un puntatore alle informazioni sullo stato definite dall'applicazione associate all'oggetto server.
[in] eventType
ID evento passato dal callback dell'evento
[in] inParam
Riferimento dei parametri evento di input passati dal callback evento
[in] outParam
Riferimento dei parametri evento di output passati dal callback evento