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.

摘要

WeaveEchoServer 類別會實作 Weave Echo 通訊協定的回應者端。Weave Echo 通訊協定與 ICMP 連線偵測 (ping) 通訊協定類似,可用於測試 Weave 節點的有效性和可連性。

應用程式可使用 WeaveEchoServer 類別,自動回應傳入的 EchoRequest 訊息。存在用於啟動 echo 要求的對應類別 (請參閱「WeaveEchoClient」)。

根據預設,WeaveEchoServer 會立即回應 EchoRequest,並在回應中包含與要求相同的酬載。不過,應用程式在處理 EchoRequestReceived API 事件期間可改變這個行為。

API 事件

在作業期間,WeaveEchoServer 物件會呼叫應用程式,以要求特定動作或傳送重要事件通知。這些 API 事件呼叫會對目前在伺服器物件上設定的回呼函式發出。除非另有註明,否則應用程式可以在事件回呼期間自由變更伺服器的狀態。有一個整體例外狀況是物件的 Shutdown() 方法,這個方法可能不會在回呼期間呼叫。

定義的 API 事件如下:

EchoRequestReceived

系統收到來自對等客戶的 EchoRequest 訊息。事件的引數包含要求酬載、接收訊息的交換結構定義,以及要求訊息的相關中繼資訊。

如果應用程式選擇,可能會變更事件的輸出引數,以強制延遲回應或完全隱藏回應。此外,它可能會改變酬載緩衝區的內容,這會成為回應訊息的酬載。

EchoResponseSent

EchoResponse 訊息已寄出或無法傳送。事件的引數包含因傳送訊息 (如果有的話) 而產生的錯誤,以及傳送訊息時使用的交換情境。

繼承

沿用自: nl::Weave::WeaveServerBase
直接已知的子類別: nl::Weave::DeviceLayer::Internal::EchoServer

建構函式和解構函式

WeaveEchoServer(void)
WeaveEchoServer 的預設建構函式。

公開類型

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
}
列舉

公開屬性

AppState
void *
應用程式專屬資料的指標。
OnEchoRequestReceived
EchoFunct

公開函式

GetEventCallback(void) const
EventCallback
傳回目前在 WeaveEchoServer 物件上設定的 API 事件回呼函式的指標。
Init(WeaveExchangeManager *exchangeMgr, EventCallback eventCallback, void *appState)
初始化 WeaveEchoServer 物件。
Init(WeaveExchangeManager *exchangeMgr)
初始化 WeaveEchoServer 物件。
SetEventCallback(EventCallback eventCallback)
void
設定 WeaveEchoServer 物件上的 API 事件回呼函式。
Shutdown(void)
關閉之前初始化的 WeaveEchoServer 物件。

公開的靜態函式

DefaultEventHandler(void *appState, EventType eventType, const InEventParam & inParam, OutEventParam & outParam)
void
WeaveEchoServer API 事件的預設處理常式。

Structs

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

WeaveEchoServer API 事件的輸入參數。

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

WeaveEchoServer API 事件的輸出參數。

公開類型

EchoFunct

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

EventCallback

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

EventType

 EventType
屬性
kEvent_DefaultCheck

用於驗證應用程式中正確的預設事件處理方式。

kEvent_EchoRequestReceived

系統收到同類應用程式的 EchoRequest 訊息。

kEvent_EchoResponseSent

EchoResponse 訊息已寄出或無法傳送。

公開屬性

AppState

void * AppState

應用程式專屬資料的指標。

OnEchoRequestReceived

EchoFunct OnEchoRequestReceived

公開函式

GetEventCallback

EventCallback GetEventCallback(
  void
) const 

傳回目前在 WeaveEchoServer 物件上設定的 API 事件回呼函式的指標。

Init

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

初始化 WeaveEchoServer 物件。

初始化 WeaveEchoServer 物件,以回應來自對等點的 echo 訊息。

詳細資料
參數
[in] exchangeMgr
指向 WeaveExchangeManager 物件的指標。
[in] eventCallback
WeaveEchoServer 物件呼叫的函式指標,用於將 API 事件傳送至應用程式。
[in] appState
指向應用程式定義物件的指標,該物件會在發生 API 事件時傳回應用程式。

Init

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr
)

初始化 WeaveEchoServer 物件。

初始化 WeaveEchoServer 物件,以回應來自對等點的 echo 訊息。

已淘汰:請改用 Init(WeaveExchangeManager * ExchangeMgr, EventCallback eventCallback, void * appState)

詳細資料
參數
[in] exchangeMgr
指向 WeaveExchangeManager 物件的指標。
[in] eventCallback
WeaveEchoServer 物件呼叫的函式指標,用於將 API 事件傳送至應用程式。
[in] appState
指向應用程式定義物件的指標,該物件會在發生 API 事件時傳回應用程式。

SetEventCallback

void SetEventCallback(
  EventCallback eventCallback
)

設定 WeaveEchoServer 物件上的 API 事件回呼函式。

關閉

WEAVE_ERROR Shutdown(
  void
)

關閉之前初始化的 WeaveEchoServer 物件。

請注意,只有在之前呼叫了 Init() 方法時,才能呼叫這個方法。

WeaveEchoServer

 WeaveEchoServer(
  void
)

WeaveEchoServer 的預設建構函式。

公開的靜態函式

DefaultEventHandler

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

WeaveEchoServer API 事件的預設處理常式。

應用程式必須針對應用程式無法識別或處理的任何 API 事件呼叫這個方法。提供的參數必須與伺服器物件傳遞至應用程式事件處理常式函式中的參數相同。

詳細資料
參數
[in] appState
指向與伺服器物件相關的應用程式定義狀態資訊的指標。
[in] eventType
事件回呼傳遞的事件 ID
[in] inParam
事件回呼傳遞的輸入事件參數參照
[in] outParam
事件回呼傳遞的輸出事件參數參照