nl::Weave::WeaveExchangeManager

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

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

摘要

它可代表更高层工作,创建 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

这会终止该对象的这一实例,并释放所有保留的资源。

详细信息
返回值

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。