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 消息的自动响应。存在用于启动 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 事件的默认处理程序。

结构体

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
指向函数的指针,WeaveEchoServer 对象将通过该函数调用该函数,以便向应用传递 API 事件。
[in] appState
指向应用定义的对象的指针,每当发生 API 事件时,该对象将传递回应用。

Init

WEAVE_ERROR Init(
  WeaveExchangeManager *exchangeMgr
)

初始化 WeaveEchoServer 对象。

初始化 WeaveEchoServer 对象以响应来自对等方的回显消息。

已弃用:请使用 Init(WeaveExchangeManager * switchMgr, 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
对事件回调函数传递的输出事件参数的引用