NL::编织::编织交换管理器

#include <src/lib/core/WeaveExchangeMgr.h>

此类用于管理与其他 Weave 节点的 ExchangeContext。

概括

它代表更高层工作,创建 ExchangeContexts 并处理未经请求的消息处理程序的注册/取消注册。

构造函数和析构函数

WeaveExchangeManager (void)
构造函数WeaveExchangeManager类。

公共类型

State {
kState_NotInitialized = 0,
kState_Initialized = 1
}
枚举

公共属性

FabricState
[只读] 关联的 FabricState 对象。
MessageLayer
[READ ONLY]关联WeaveMessageLayer对象。
State
uint8_t
[READ ONLY]所述的状态WeaveExchangeManager对象。

公共职能

AllowUnsolicitedMessages ( WeaveConnection *con)
void
允许在指定的连接上接收未经请求的消息。
ClearMsgCounterSyncReq (uint64_t peerNodeId)
void
清除发送给该对等方的所有待处理消息的 MsgCounterSyncReq 标志。
FindContext (uint64_t peerNodeId, WeaveConnection *con, void *appState, bool isInitiator)
找到ExchangeContext从匹配一组给定的参数池。
Init ( WeaveMessageLayer *msgLayer)
初始化WeaveExchangeManager对象。
NewBinding (Binding::EventCallback eventCallback, void *appState)
分配一个新的绑定与提供的参数。
NewContext (const uint64_t & peerNodeId, void *appState)
创建一个新的ExchangeContext与由对等节点标识符所指定的给定对等编织节点。
NewContext (const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
创建一个新的ExchangeContext与由对等节点标识符和对端IP地址所指定的给定对等编织节点。
NewContext (const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
创建一个新的ExchangeContext与由对等节点标识符,对端IP地址,并且在指定接口上的目的端口指定给定对等编织节点。
NewContext ( WeaveConnection *con, void *appState)
创建一个新的ExchangeContext超过规定的给定对等节点织WeaveConnection
RegisterUnsolicitedMessageHandler (uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
为给定的配置文件标识符注册一个未经请求的消息处理程序。
RegisterUnsolicitedMessageHandler (uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
为给定的配置文件标识符注册一个未经请求的消息处理程序。
RegisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
为给定的配置文件标识符和消息类型注册一个未经请求的消息处理程序。
RegisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
为给定的配置文件标识符和消息类型注册一个未经请求的消息处理程序。
RegisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
在指定的 Weave 连接上为给定的配置文件标识符、消息类型注册未经请求的消息处理程序。
RegisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
在指定的 Weave 连接上为给定的配置文件标识符、消息类型注册未经请求的消息处理程序。
Shutdown (void)
UnregisterUnsolicitedMessageHandler (uint32_t profileId)
为给定的配置文件标识符取消注册未经请求的消息处理程序。
UnregisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType)
为给定的配置文件标识符和消息类型取消注册未经请求的消息处理程序。
UnregisterUnsolicitedMessageHandler (uint32_t profileId, uint8_t msgType, WeaveConnection *con)
为给定的配置文件标识符、消息类型和 Weave 连接取消注册未经请求的消息处理程序。

公共类型

状态

 State
特性
kState_Initialized

用于指示WeaveExchangeManager被初始化。

kState_NotInitialized

用于指示WeaveExchangeManager未初始化。

公共属性

织物状态

WeaveFabricState * FabricState

[只读] 关联的 FabricState 对象。

消息层

WeaveMessageLayer * MessageLayer

[READ ONLY]关联WeaveMessageLayer对象。

状态

uint8_t State

[READ ONLY]所述的状态WeaveExchangeManager对象。

公共职能

允许不请自来的消息

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

允许在指定的连接上接收未经请求的消息。

此方法在给定的 Weave 连接上设置消息接收处理程序。

细节
参数
[in] con
指向 Weave 连接对象的指针。

清除消息计数器同步请求

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

清除发送给该对等方的所有待处理消息的 MsgCounterSyncReq 标志。

细节
参数
[in] peerNodeId
目的节点的节点ID。

查找上下文

ExchangeContext * FindContext(
  uint64_t peerNodeId,
  WeaveConnection *con,
  void *appState,
  bool isInitiator
)

找到ExchangeContext从匹配一组给定的参数池。

细节
参数
[in] peerNodeId
与该对等体的节点标识符ExchangeContext已经成立。
[in] con
的指针WeaveConnection表示与同位体的TCP连接对象。
[in] appState
指向保存上下文状态的更高层对象的指针。
[in] isInitiator
本地节点是否为交换发起者的布尔指标。
退货
的指针ExchangeContext对象相匹配的所提供的参数成功时,NULL上不匹配。

在里面

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

初始化WeaveExchangeManager对象。

在此实例的生命周期内,此方法在对象构造后调用一次,直到调用 Shutdown 以终止实例。

细节
参数
[in] msgLayer
的指针WeaveMessageLayer对象。
返回值
WEAVE_ERROR_INCORRECT_STATE
如果状态不等于 kState_NotInitialized。
WEAVE_NO_ERROR
关于成功。

新绑定

Binding * NewBinding(
  Binding::EventCallback eventCallback,
  void *appState
)

分配一个新的绑定与提供的参数。

细节
参数
[in] eventCallback
用于事件回调的函数指针
[in] appState
指向稍后将在事件回调中携带的某些上下文的指针
退货
一个指向新分配的绑定,或NULL,如果池已用完

新建上下文

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  void *appState
)

创建一个新的ExchangeContext与由对等节点标识符所指定的给定对等编织节点。

细节
参数
[in] peerNodeId
与该对等体的节点标识符ExchangeContext正在建立。
[in] appState
指向保存上下文状态的更高层对象的指针。
退货
的指针创建ExchangeContext对象上的成功。否则,如果没有对象可以分配或可用,则为 NULL。

新建上下文

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  void *appState
)

创建一个新的ExchangeContext与由对等节点标识符和对端IP地址所指定的给定对等编织节点。

细节
参数
[in] peerNodeId
与该对等体的节点标识符ExchangeContext正在建立。
[in] peerAddr
对等节点的 IP 地址。
[in] appState
指向保存上下文状态的更高层对象的指针。
退货
的指针创建ExchangeContext对象上的成功。否则,如果没有对象可以分配或可用,则为 NULL。

新建上下文

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId sendIntfId,
  void *appState
)

创建一个新的ExchangeContext与由对等节点标识符,对端IP地址,并且在指定接口上的目的端口指定给定对等编织节点。

细节
参数
[in] peerNodeId
与该对等体的节点标识符ExchangeContext正在建立。
[in] peerAddr
对等节点的 IP 地址。
[in] peerPort
对等节点的端口。
[in] sendIntfId
用于在此交换上发送 Weave 消息的接口。
[in] appState
指向保存上下文状态的更高层对象的指针。
退货
的指针创建ExchangeContext对象上的成功。否则,如果没有对象可以分配或可用,则为 NULL。

新建上下文

ExchangeContext * NewContext(
  WeaveConnection *con,
  void *appState
)

创建一个新的ExchangeContext超过规定的给定对等节点织WeaveConnection

细节
参数
[in] con
的指针WeaveConnection表示与同位体的TCP连接对象。
[in] appState
指向保存上下文状态的更高层对象的指针。
退货
的指针创建ExchangeContext对象上的成功。否则,如果没有对象可以分配或可用,则为 NULL。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

为给定的配置文件标识符注册一个未经请求的消息处理程序。

将为给定配置文件的所有消息调用此处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] handler
未经请求的消息处理程序。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满并且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

为给定的配置文件标识符注册一个未经请求的消息处理程序。

将为给定配置文件的所有消息调用此处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] handler
未经请求的消息处理程序。
[in] allowDups
给定配置文件是否允许重复消息的布尔指示符。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

为给定的配置文件标识符和消息类型注册一个未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
相应配置文件的消息类型。
[in] handler
未经请求的消息处理程序。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满并且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

为给定的配置文件标识符和消息类型注册一个未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
对应配置文件的消息类型。
[in] handler
未经请求的消息处理程序。
[in] allowDups
对于给定的配置文件标识符和消息类型是否允许重复消息的布尔指示符。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满并且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

在指定的 Weave 连接上为给定的配置文件标识符、消息类型注册未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
对应配置文件的消息类型。
[in] con
的指针WeaveConnection表示与同位体的TCP连接对象。
[in] handler
未经请求的消息处理程序。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满并且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

注册UnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

为指定的 Weave 连接上的给定配置文件标识符、消息类型注册未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
对应配置文件的消息类型。
[in] con
的指针WeaveConnection表示与同位体的TCP连接对象。
[in] handler
未经请求的消息处理程序。
[in] allowDups
布尔指示符是否允许给定配置文件标识符、指定 Weave 连接上的消息类型的重复消息。
[in] appState
指向保存上下文状态的更高层对象的指针。
返回值
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
如果主动提供的消息处理程序池已满并且无法分配新的处理程序池。
WEAVE_NO_ERROR
关于成功。

关掉

WEAVE_ERROR Shutdown(
  void
)

关闭WeaveExchangeManager

这将终止对象的此实例并释放所有持有的资源。

细节
退货
WEAVE_NO_ERROR无条件。

取消注册UnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

为给定的配置文件标识符取消注册未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
返回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
如果未找到匹配的主动提供的消息处理程序。
WEAVE_NO_ERROR
关于成功。

取消注册UnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

为给定的配置文件标识符和消息类型取消注册未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
对应配置文件的消息类型。
返回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
如果未找到匹配的主动提供的消息处理程序。
WEAVE_NO_ERROR
关于成功。

取消注册UnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con
)

为给定的配置文件标识符、消息类型和 Weave 连接取消注册未经请求的消息处理程序。

细节
参数
[in] profileId
接收到的消息的配置文件标识符。
[in] msgType
对应配置文件的消息类型。
[in] con
的指针WeaveConnection表示与同位体的TCP连接对象。
返回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
如果未找到匹配的主动提供的消息处理程序。
WEAVE_NO_ERROR
关于成功。

编织交换管理器

 WeaveExchangeManager(
  void
)

构造函数WeaveExchangeManager类。

它将状态设置为 kState_NotInitialized。