nl::Weave::WeaveExchangeManager

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

Lớp này dùng để quản lý ExchangeContexts với các nút Weave khác.

Tóm tắt

Nền tảng này hoạt động thay mặt cho các lớp cao hơn, tạo ra ExchangeContexts và xử lý việc đăng ký/huỷ đăng ký trình xử lý tin nhắn không mong muốn.

Hàm khởi tạo và phá huỷ

WeaveExchangeManager(void)
Hàm khởi tạo cho lớp WeaveExchangeManager.

Loại công khai

State{
  kState_NotInitialized = 0,
  kState_Initialized = 1
}
enum

Các thuộc tính công khai

FabricState
[CHỈ ĐỌC] Đối tượng FabricState được liên kết.
MessageLayer
[CHỈ ĐỌC] Đối tượng WeaveMessageLayer được liên kết.
State
uint8_t
[CHỈ ĐỌC] Trạng thái của đối tượng WeaveExchangeManager.

Hàm công khai

AllowUnsolicitedMessages(WeaveConnection *con)
void
Cho phép nhận các tin nhắn không mong muốn trên kết nối đã chỉ định.
ClearMsgCounterSyncReq(uint64_t peerNodeId)
void
Xoá cờ MESSAGECounterSyncReq cho tất cả các tin nhắn đang chờ xử lý gửi đến ứng dụng ngang hàng đó.
FindContext(uint64_t peerNodeId, WeaveConnection *con, void *appState, bool isInitiator)
Tìm ExchangeContext từ một nhóm khớp với một tập hợp các tham số nhất định.
Init(WeaveMessageLayer *msgLayer)
Khởi động đối tượng WeaveExchangeManager.
NewBinding(Binding::EventCallback eventCallback, void *appState)
Phân bổ một Liên kết mới với các đối số đã cung cấp.
NewContext(const uint64_t & peerNodeId, void *appState)
Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định do giá trị nhận dạng nút ngang hàng chỉ định.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định được chỉ định theo giá trị nhận dạng nút ngang hàng và địa chỉ IP ngang hàng.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định được chỉ định theo giá trị nhận dạng nút ngang hàng, địa chỉ IP ngang hàng và cổng đích trên một giao diện được chỉ định.
NewContext(WeaveConnection *con, void *appState)
Tạo một ExchangeContext mới có một nút Weave ngang hàng nhất định qua một WeaveConnection được chỉ định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ cụ thể.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ cụ thể.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định, loại thông báo trên một kết nối Weave được chỉ định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định, loại thông báo trên một kết nối Weave được chỉ định.
Shutdown(void)
UnregisterUnsolicitedMessageHandler(uint32_t profileId)
Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType)
Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con)
Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ, loại thông báo và kết nối Weave nhất định.

Loại công khai

Tiểu bang

 State
Thuộc tính
kState_Initialized

Dùng để cho biết rằng WeaveExchangeManager được khởi động.

kState_NotInitialized

Dùng để cho biết rằng WeaveExchangeManager không được khởi chạy.

Các thuộc tính công khai

FabricState

WeaveFabricState * FabricState

[CHỈ ĐỌC] Đối tượng FabricState được liên kết.

MessageLayer

WeaveMessageLayer * MessageLayer

[CHỈ ĐỌC] Đối tượng WeaveMessageLayer được liên kết.

Tiểu bang

uint8_t State

[CHỈ ĐỌC] Trạng thái của đối tượng WeaveExchangeManager.

Hàm công khai

AllowUnsolicitedMessages

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

Cho phép nhận các tin nhắn không mong muốn trên kết nối đã chỉ định.

Phương thức này sẽ thiết lập trình xử lý tiếp nhận thông báo trên kết nối Weave đã cho.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng kết nối Weave.

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

Xoá cờ MESSAGECounterSyncReq cho tất cả các tin nhắn đang chờ xử lý gửi đến ứng dụng ngang hàng đó.

Chi tiết
Tham số
[in] peerNodeId
Mã nút của nút đích.

FindContext

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

Tìm ExchangeContext từ một nhóm khớp với một tập hợp các tham số nhất định.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng đã thiết lập ExchangeContext.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection biểu thị kết nối TCP với ứng dụng ngang hàng.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
[in] isInitiator
Chỉ báo Boolean cho biết nút cục bộ có phải là trình khởi tạo trao đổi hay không.
Trả về
Con trỏ trỏ đến đối tượng ExchangeContext khớp với các tham số được cung cấp Khi thành công, NULL không khớp với bất kỳ giá trị nào.

Init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

Khởi động đối tượng WeaveExchangeManager.

Trong vòng đời của thực thể này, phương thức này được gọi một lần sau khi tạo đối tượng cho đến khi có lệnh gọi đến Tắt máy để chấm dứt thực thể.

Chi tiết
Tham số
[in] msgLayer
Con trỏ trỏ đến đối tượng WeaveMessageLayer.
Giá trị trả về
WEAVE_ERROR_INCORRECT_STATE
Nếu trạng thái không bằng kState_NotInitialized.
WEAVE_NO_ERROR
Khi thành công.

NewBinding

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

Phân bổ một Liên kết mới với các đối số đã cung cấp.

Chi tiết
Tham số
[in] eventCallback
Con trỏ hàm được dùng cho lệnh gọi lại sự kiện
[in] appState
Con trỏ trỏ đến một số ngữ cảnh sẽ được thực hiện trong lệnh gọi lại sự kiện sau này
Trả về
Con trỏ trỏ đến Binding mới được phân bổ hoặc NULL nếu nhóm đã hết

NewContext

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

Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định do giá trị nhận dạng nút ngang hàng chỉ định.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng mà ExchangeContext đang được thiết lập.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Trả về
Con trỏ trỏ đến đối tượng ExchangeContext đã tạo Khi thành công. Nếu không, giá trị sẽ là NULL (Rỗng) nếu không có đối tượng nào có thể được phân bổ hoặc có sẵn.

NewContext

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

Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định được chỉ định theo giá trị nhận dạng nút ngang hàng và địa chỉ IP ngang hàng.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng mà ExchangeContext đang được thiết lập.
[in] peerAddr
Địa chỉ IP của nút ngang hàng.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Trả về
Con trỏ trỏ đến đối tượng ExchangeContext đã tạo Khi thành công. Nếu không, giá trị này sẽ là giá trị NULL nếu không thể phân bổ hoặc có sẵn đối tượng nào.

NewContext

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

Tạo một ExchangeContext mới bằng một nút Weave ngang hàng nhất định được chỉ định theo giá trị nhận dạng nút ngang hàng, địa chỉ IP ngang hàng và cổng đích trên một giao diện được chỉ định.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng mà ExchangeContext đang được thiết lập.
[in] peerAddr
Địa chỉ IP của nút ngang hàng.
[in] peerPort
Cổng của nút ngang hàng.
[in] sendIntfId
Giao diện sử dụng để gửi tin nhắn Weave trên sàn giao dịch này.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Trả về
Con trỏ trỏ đến đối tượng ExchangeContext đã tạo Khi thành công. Nếu không, giá trị này sẽ là giá trị NULL nếu không thể phân bổ hoặc có sẵn đối tượng nào.

NewContext

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

Tạo một ExchangeContext mới có một nút Weave ngang hàng nhất định qua một WeaveConnection được chỉ định.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection biểu thị kết nối TCP với ứng dụng ngang hàng.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Trả về
Con trỏ trỏ đến đối tượng ExchangeContext đã tạo Khi thành công. Nếu không, giá trị này sẽ là giá trị NULL nếu không thể phân bổ hoặc có sẵn đối tượng nào.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ cụ thể.

Trình xử lý này sẽ được gọi cho tất cả thông báo của hồ sơ nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ cụ thể.

Trình xử lý này sẽ được gọi cho tất cả thông báo của hồ sơ nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] allowDups
Chỉ báo boolean cho biết liệu thông báo trùng lặp có được cho phép đối với một cấu hình nhất định hay không.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] allowDups
Chỉ báo boolean cho biết liệu thông báo trùng lặp có được cho phép đối với một loại thông báo và giá trị nhận dạng hồ sơ nhất định hay không.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định, loại thông báo trên một kết nối Weave được chỉ định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection biểu thị kết nối TCP với ứng dụng ngang hàng.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

RegisterUnsolicitedMessageHandler

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

Đăng ký một trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định, loại thông báo trên một kết nối Weave được chỉ định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection biểu thị kết nối TCP với ứng dụng ngang hàng.
[in] handler
Trình xử lý thông báo không mong muốn.
[in] allowDups
Chỉ báo Boolean về việc có cho phép các thông báo trùng lặp đối với một giá trị nhận dạng hồ sơ nhất định hay không, loại thông báo trên một kết nối Weave được chỉ định.
[in] appState
Con trỏ trỏ đến một đối tượng lớp cao hơn chứa trạng thái của ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý thông báo không mong muốn đã đầy và không thể phân bổ một nhóm trình xử lý thông báo mới.
WEAVE_NO_ERROR
Khi thành công.

Tắt

WEAVE_ERROR Shutdown(
  void
)

Tắt WeaveExchangeManager.

Thao tác này sẽ chấm dứt thực thể này của đối tượng và giải phóng tất cả tài nguyên được giữ lại.

Chi tiết
Trả về
WEAVE_NO_ERROR một cách vô điều kiện.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
Giá trị trả về
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Nếu không tìm thấy trình xử lý thông báo không mong muốn phù hợp.
WEAVE_NO_ERROR
Khi thành công.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ và loại thông báo nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
Giá trị trả về
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Nếu không tìm thấy trình xử lý thông báo không mong muốn phù hợp.
WEAVE_NO_ERROR
Khi thành công.

UnregisterUnsolicitedMessageHandler

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

Huỷ đăng ký trình xử lý thông báo không mong muốn cho một giá trị nhận dạng hồ sơ, loại thông báo và kết nối Weave nhất định.

Chi tiết
Tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection biểu thị kết nối TCP với ứng dụng ngang hàng.
Giá trị trả về
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Nếu không tìm thấy trình xử lý thông báo không mong muốn phù hợp.
WEAVE_NO_ERROR
Khi thành công.

WeaveExchangeManager

 WeaveExchangeManager(
  void
)

Hàm khởi tạo cho lớp WeaveExchangeManager.

Đoạn mã này đặt trạng thái thành kState_NotInitialized.