nl::Weave::WeaveExchangeManager

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

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

摘要

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

构造函数和析构函数

WeaveExchangeManager(void)
WeaveExchangeManager 类的构造函数。

公共类型

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

公共属性

FabricState
[只读] 关联的 FabricState 对象。
MessageLayer
[只读] 关联的 WeaveMessageLayer 对象。
State
uint8_t
[只读] 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)
使用提供的参数分配新的 Binding
NewContext(const uint64_t & peerNodeId, void *appState)
使用对等节点标识符指定的给定对等 Weave 节点创建新的 ExchangeContext
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
使用由对等节点标识符和对等 IP 地址指定的给定对等 Weave 节点创建新的 ExchangeContext
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
使用由对等节点标识符、对等 IP 地址和指定接口上的目标端口指定的给定对等 Weave 节点创建新的 ExchangeContext
NewContext(WeaveConnection *con, void *appState)
通过指定的 WeaveConnection 创建具有指定对等 Weave 节点的新 ExchangeContext
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 未初始化。

公共属性

FabricState

WeaveFabricState * FabricState

[只读] 关联的 FabricState 对象。

MessageLayer

WeaveMessageLayer * MessageLayer

[只读] 关联的 WeaveMessageLayer 对象。

状态

uint8_t State

[只读] WeaveExchangeManager 对象的状态。

公共函数

AllowUnsolicitedMessages

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

允许在指定连接上接收垃圾消息。

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

具体说明
参数
[in] con
指向 Weave 连接对象的指针。

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

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

具体说明
参数
[in] peerNodeId
目标节点的节点 ID。

FindContext

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。

Init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

初始化 WeaveExchangeManager 对象。

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

具体说明
参数
[in] msgLayer
指向 WeaveMessageLayer 对象的指针。
返回值
WEAVE_ERROR_INCORRECT_STATE
如果状态不等于 kState_NotInitialized。
WEAVE_NO_ERROR
成功时。

NewBinding

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

使用提供的参数分配新的 Binding

具体说明
参数
[in] eventCallback
用于事件回调的函数指针
[in] appState
指向稍后将在事件回调中传递的某个上下文的指针
返回值
指向新分配的 Binding 的指针,如果池已用尽,则为 NULL

NewContext

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

使用对等节点标识符指定的给定对等 Weave 节点创建新的 ExchangeContext

具体说明
参数
[in] peerNodeId
设置 ExchangeContext 的对等方的节点标识符。
[in] appState
指向包含上下文状态的更高级别对象的指针。
返回值
成功时,指向已创建的 ExchangeContext 对象的指针。如果无法分配对象或对象可用,则返回 NULL。

NewContext

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

使用由对等节点标识符和对等 IP 地址指定的给定对等 Weave 节点创建新的 ExchangeContext

具体说明
参数
[in] peerNodeId
设置 ExchangeContext 的对等方的节点标识符。
[in] peerAddr
对等节点的 IP 地址。
[in] appState
指向包含上下文状态的更高级别对象的指针。
返回值
成功时,指向已创建的 ExchangeContext 对象的指针。如果无法分配对象或对象可用,则返回 NULL。

NewContext

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

使用由对等节点标识符、对等 IP 地址和指定接口上的目标端口指定的给定对等 Weave 节点创建新的 ExchangeContext

具体说明
参数
[in] peerNodeId
设置 ExchangeContext 的对等方的节点标识符。
[in] peerAddr
对等节点的 IP 地址。
[in] peerPort
对等节点的端口。
[in] sendIntfId
用于在此广告交易平台上发送 Weave 消息的接口。
[in] appState
指向包含上下文状态的更高级别对象的指针。
返回值
成功时,指向已创建的 ExchangeContext 对象的指针。如果无法分配对象或对象可用,则返回 NULL。

NewContext

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

通过指定的 WeaveConnection 创建具有指定对等 Weave 节点的新 ExchangeContext

具体说明
参数
[in] con
指向 WeaveConnection 对象的指针,该对象表示与对等端的 TCP 连接。
[in] appState
指向包含上下文状态的更高级别对象的指针。
返回值
成功时,指向已创建的 ExchangeContext 对象的指针。如果无法分配对象或对象可用,则返回 NULL。

RegisterUnsolicitedMessageHandler

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
成功时。

RegisterUnsolicitedMessageHandler

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
成功时。

RegisterUnsolicitedMessageHandler

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
成功时。

RegisterUnsolicitedMessageHandler

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
成功时。

RegisterUnsolicitedMessageHandler

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
成功时。

RegisterUnsolicitedMessageHandler

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 为无条件错误。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

为给定的个人资料标识符取消注册未经请求的消息处理程序。

具体说明
参数
[in] profileId
已接收消息的个人资料标识符。
返回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
如果未找到匹配的自发邮件处理程序。
WEAVE_NO_ERROR
成功时。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

为指定的个人资料标识符和消息类型取消注册未经请求的消息处理程序。

具体说明
参数
[in] profileId
已接收消息的个人资料标识符。
[in] msgType
相应个人资料的消息类型。
返回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
如果未找到匹配的自发邮件处理程序。
WEAVE_NO_ERROR
成功时。

UnregisterUnsolicitedMessageHandler

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

 WeaveExchangeManager(
  void
)

WeaveExchangeManager 类的构造函数。

将状态设置为 kState_NotInitialized。