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。