nl::Weave::WeaveExchangeManager

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

這個類別可用於管理具有其他 Weave 節點的 ExchangeContext。

摘要

這項技術可代表較高層、建立 ExchangeContexts 以及處理來路不明訊息處理常式的註冊/取消註冊作業。

建構函式和解構函式

WeaveExchangeManager(void)
WeaveExchangeManager 類別的建構函式。

公開類型

State{
  kState_NotInitialized = 0,
  kState_Initialized = 1
}
列舉

公開屬性

FabricState
[READ ONLY] 相關聯的 FabricState 物件。
MessageLayer
[READ ONLY] 相關聯的 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)
使用提供的引數分配新的繫結
NewContext(const uint64_t & peerNodeId, void *appState)
使用對等互連節點 ID 指定的指定對等點 Weave 節點建立新的 ExchangeContext
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
建立新的 ExchangeContext,並使用對等互連節點 ID 和對等點 IP 位址指定的特定對等互連 Weave 節點。
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
建立新的 ExchangeContext,並在指定介面中使用對等互連節點 ID、對等互連 IP 位址和目標通訊埠指定的特定對等互連 Weave 節點。
NewContext(WeaveConnection *con, void *appState)
根據指定的 WeaveConnection,建立具有指定對等點 Weave 節點的新 ExchangeContext
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
針對特定的個人資料 ID,註冊來路不明的訊息處理常式。
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
針對特定的個人資料 ID,註冊來路不明的訊息處理常式。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
針對特定設定檔 ID 和訊息類型,註冊來路不明的訊息處理常式。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
針對特定設定檔 ID 和訊息類型,註冊來路不明的訊息處理常式。
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)
為特定個人資料 ID 取消註冊來路不明的訊息處理常式。
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType)
為特定個人資料 ID 和訊息類型取消註冊來路不明的訊息處理常式。
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con)
為特定設定檔 ID、訊息類型和 Weave 連線取消註冊來路不明的訊息處理常式。

公開類型

 State
屬性
kState_Initialized

用來表示 WeaveExchangeManager 已初始化。

kState_NotInitialized

用來表示 WeaveExchangeManager 並未初始化。

公開屬性

FabricState

WeaveFabricState * FabricState

[READ ONLY] 相關聯的 FabricState 物件。

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] 相關聯的 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 的對等點節點 ID。
[in] con
指向代表與對等點 TCP 連線的 WeaveConnection 物件的指標。
[in] appState
指向保留情境狀態的較高圖層物件的指標。
[in] isInitiator
表示本機節點是否為交換庫發起者的布林值指標。
傳回
指向與所提供參數相符的 ExchangeContext 物件指標。如果物件成功,則值為 NULL。

Init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

初始化 WeaveExchangeManager 物件。

在這個執行個體的生命週期內,系統會在物件建構後叫用這個方法一次,直到發出對終止執行個體的呼叫關閉為止。

詳細資料
參數
[in] msgLayer
指向 WeaveMessageLayer 物件的指標。
傳回值
WEAVE_ERROR_INCORRECT_STATE
如果狀態不等於 kState_NotInitialized。
WEAVE_NO_ERROR
成功時。

NewBinding

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

使用提供的引數分配新的繫結

詳細資料
參數
[in] eventCallback
用於事件回呼的函式指標
[in] appState
指向稍後會在事件回呼中移轉的某些內容的指標
傳回
新分配的 Binding 指標;如果集區已用盡,則指向 NULL

NewContext

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

使用對等互連節點 ID 指定的指定對等點 Weave 節點建立新的 ExchangeContext

詳細資料
參數
[in] peerNodeId
正在設定 ExchangeContext 的對等節點節點 ID。
[in] appState
指向保留情境狀態的較高圖層物件的指標。
傳回
建立成功 ExchangeContext 物件的指標。否則,如果沒有可以分配或可用的物件,則傳回 NULL。

NewContext

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

建立新的 ExchangeContext,並使用對等互連節點 ID 和對等點 IP 位址指定的特定對等互連 Weave 節點。

詳細資料
參數
[in] peerNodeId
正在設定 ExchangeContext 的對等節點節點 ID。
[in] peerAddr
對等節點的 IP 位址。
[in] appState
指向保留情境狀態的較高圖層物件的指標。
傳回
建立成功 ExchangeContext 物件的指標。否則,如果沒有可以分配或可用的物件,則為 NULL。

NewContext

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

建立新的 ExchangeContext,並在指定介面中使用對等互連節點 ID、對等互連 IP 位址和目標通訊埠指定的特定對等互連 Weave 節點。

詳細資料
參數
[in] peerNodeId
正在設定 ExchangeContext 的對等節點節點 ID。
[in] peerAddr
對等節點的 IP 位址。
[in] peerPort
對等節點的通訊埠。
[in] sendIntfId
在這個交換庫中傳送 Weave 訊息時使用的介面。
[in] appState
指向保留情境狀態的較高圖層物件的指標。
傳回
建立成功 ExchangeContext 物件的指標。否則,如果沒有可以分配或可用的物件,則為 NULL。

NewContext

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

根據指定的 WeaveConnection,建立具有指定對等點 Weave 節點的新 ExchangeContext

詳細資料
參數
[in] con
指向代表與對等點 TCP 連線的 WeaveConnection 物件的指標。
[in] appState
指向保留情境狀態的較高圖層物件的指標。
傳回
建立成功 ExchangeContext 物件的指標。否則,如果沒有可以分配或可用的物件,則為 NULL。

RegisterUnsolicitedMessageHandler

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

針對特定的個人資料 ID,註冊來路不明的訊息處理常式。

系統會針對指定設定檔的所有訊息叫用這個處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[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
)

針對特定的個人資料 ID,註冊來路不明的訊息處理常式。

系統會針對指定設定檔的所有訊息叫用這個處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[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
)

針對特定設定檔 ID 和訊息類型,註冊來路不明的訊息處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[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
)

針對特定設定檔 ID 和訊息類型,註冊來路不明的訊息處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[in] msgType
對應設定檔的訊息類型。
[in] handler
來路不明的訊息處理常式。
[in] allowDups
這個布林值指標會指出特定設定檔 ID 與郵件類型是否允許重複郵件。
[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
收到訊息的個人資料 ID。
[in] msgType
對應設定檔的訊息類型。
[in] con
指向代表與對等點 TCP 連線的 WeaveConnection 物件的指標。
[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
收到訊息的個人資料 ID。
[in] msgType
對應設定檔的訊息類型。
[in] con
指向代表與對等點 TCP 連線的 WeaveConnection 物件的指標。
[in] handler
來路不明的訊息處理常式。
[in] allowDups
這個布林值指標會指出特定設定檔 ID 是否允許在指定的 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
)

為特定個人資料 ID 取消註冊來路不明的訊息處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
傳回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
找不到相符的訊息處理常式。
WEAVE_NO_ERROR
成功時。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

為特定個人資料 ID 和訊息類型取消註冊來路不明的訊息處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[in] msgType
對應設定檔的訊息類型。
傳回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
找不到相符的訊息處理常式。
WEAVE_NO_ERROR
成功時。

UnregisterUnsolicitedMessageHandler

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

為特定設定檔 ID、訊息類型和 Weave 連線取消註冊來路不明的訊息處理常式。

詳細資料
參數
[in] profileId
收到訊息的個人資料 ID。
[in] msgType
對應設定檔的訊息類型。
[in] con
指向代表與對等點 TCP 連線的 WeaveConnection 物件的指標。
傳回值
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
找不到相符的訊息處理常式。
WEAVE_NO_ERROR
成功時。

WeaveExchangeManager

 WeaveExchangeManager(
  void
)

WeaveExchangeManager 類別的建構函式。

系統會將狀態設為 kState_NotInitialized。