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 プロトコルのレスポンダ側を実装します。ICMP ping プロトコルと同様に、Weave Echo プロトコルを使用して、Weave ノードのライブネスとネットワーク到達性をテストできます。

アプリケーションで WeaveEchoServer クラスを使用すると、EchoRequest メッセージへの自動応答を有効にすることができます。エコー リクエストを開始するためのクラスが存在します(WeaveEchoClient をご覧ください)。

デフォルトでは、WeaveEchoServer は EchoRequest に対してすぐに応答します。応答には、リクエストと同じペイロードが含まれます。ただし、この動作は、EchoRequestReceived API イベントの処理中にアプリケーションによって変更される可能性があります。

API イベント

オペレーションの過程で、WeaveEchoServer オブジェクトはアプリケーションを呼び出して、特定のアクションをリクエストしたり、重要なイベントの通知を配信したりします。これらの API イベント呼び出しは、サーバー オブジェクトで現在設定されているコールバック関数に対して行われます。特に指定のない限り、アプリはイベントのコールバック中にサーバーの状態を自由に変更できます。全体的な例外の 1 つはオブジェクトの 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
}
enum

パブリック属性

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 イベントのデフォルト ハンドラ。

構造体

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 オブジェクトを初期化します。

詳細
パラメータ
[in] exchangeMgr
WeaveExchangeManager オブジェクトへのポインタ。
[in] eventCallback
API イベントをアプリケーションに配信するために WeaveEchoServer オブジェクトによって呼び出される関数へのポインタ。
[in] appState
アプリケーション定義オブジェクトへのポインタ。API イベントが発生するたびにアプリケーションに返されます。

init

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr
)

WeaveEchoServer オブジェクトを初期化します。

ピアからのエコー メッセージに応答するために WeaveEchoServer オブジェクトを初期化します。

非推奨: Init(WeaveExchangeManager * exchangeMgr, EventCallback eventCallback, void * appState) を使用してください。

詳細
パラメータ
[in] exchangeMgr
WeaveExchangeManager オブジェクトへのポインタ。
[in] eventCallback
API イベントをアプリケーションに配信するために WeaveEchoServer オブジェクトによって呼び出される関数へのポインタ。
[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
イベント コールバックによって渡される出力イベント パラメータの参照