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 事件的默认处理程序。

结构体

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
对由事件回调函数传递的输出事件参数的引用