nl::Weave::WeaveExchangeManager

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

Lớp này được dùng để quản lý ExchangeContexts bằng các nút Weave khác.

Tóm tắt

Tính năng này hoạt động thay cho các lớp cao hơn, tạo ExchangeContexts và xử lý việc đăng ký/huỷ đăng ký của những trình xử lý thư không mong muốn.

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

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

Thuộc tính công khai

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

Hàm công khai

AllowUnsolicitedMessages(WeaveConnection *con)
void
Cho phép nhận thông báo không mong muốn trên kết nối đã chỉ định.
ClearMsgCounterSyncReq(uint64_t peerNodeId)
void
Xoá cờ MsgCounterSyncReq cho tất cả thông báo đang chờ xử lý cho ứ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 thông 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 với một nút Weave ngang hàng cụ thể 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 với một nút Weave ngang hàng nhất định được chỉ định bởi mã nhận dạng nút ngang hàng và địa chỉ IP của ứng dụng 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 với một nút Weave ngang hàng nhất định được chỉ định bởi mã 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 với một nút Weave ngang hàng cụ thể trên một WeaveConnection được chỉ định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký một trình xử lý tin nhắn không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Đăng ký một trình xử lý tin nhắn không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký trình xử lý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Đăng ký trình xử lý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ nhất định.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
Đăng ký trình xử lý tin nhắn 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 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ý trình xử lý tin nhắn 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 kết nối Weave được chỉ định.
Shutdown(void)
UnregisterUnsolicitedMessageHandler(uint32_t profileId)
Huỷ đăng ký trình xử lý tin nhắn 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ý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ 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 chưa được khởi động.

Thuộc tính công khai

FabricState

WeaveFabricState * FabricState

[READ ONLY] Đối tượng FabricState được liên kết.

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] Đối tượng WeaveMessageLayer được liên kết.

Tiểu bang

uint8_t State

[READ ONLY] 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 thông báo không mong muốn trên kết nối đã chỉ định.

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

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng kết nối Weave.

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

Xoá cờ MsgCounterSyncReq cho tất cả thông báo đang chờ xử lý cho ứng dụng ngang hàng đó.

Thông tin chi tiết
Các 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 thông số nhất định.

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

Bắt đầu

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

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

Trong thời gian tồn tạ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 thực hiện lệnh gọi Tắt để chấm dứt thực thể.

Thông tin chi tiết
Các tham số
[in] msgLayer
Con 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.

Thông tin chi tiết
Các 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ỏ đến một số ngữ cảnh sẽ được đưa vào lệnh gọi lại sự kiện sau này
Trả về
Con 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 với một nút Weave ngang hàng cụ thể do giá trị nhận dạng nút ngang hàng chỉ định.

Thông tin chi tiết
Các 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ỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Trả về
Con trỏ đến đối tượng ExchangeContext đã tạo khi thành công. Nếu không, giá trị sẽ là NULL nếu không thể phân bổ hoặc phân bổ đối tượng nào.

NewContext

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

Tạo một ExchangeContext mới với một nút Weave ngang hàng nhất định được chỉ định bởi mã nhận dạng nút ngang hàng và địa chỉ IP của ứng dụng ngang hàng.

Thông tin chi tiết
Các 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ỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Trả về
Con trỏ đến đối tượng ExchangeContext đã tạo khi thành công. Nếu không, giá trị sẽ là NULL nếu không thể phân bổ hoặc phân bổ đố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 với một nút Weave ngang hàng nhất định được chỉ định bởi mã 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.

Thông tin chi tiết
Các 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 dùng để gửi thông báo Weave trong cuộc trao đổi này.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Trả về
Con trỏ đến đối tượng ExchangeContext đã tạo khi thành công. Nếu không, giá trị sẽ là NULL nếu không thể phân bổ hoặc phân bổ đối tượng nào.

NewContext

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

Tạo một ExchangeContext mới với một nút Weave ngang hàng cụ thể trên một WeaveConnection được chỉ định.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection đại diện cho kết nối TCP với ứng dụng ngang hàng.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Trả về
Con trỏ đến đối tượng ExchangeContext đã tạo khi thành công. Nếu không, giá trị sẽ là NULL nếu không thể phân bổ hoặc phân bổ đố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ý tin nhắn không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.

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

Thông tin chi tiết
Các tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] handler
Trình xử lý tin nhắn không mong muốn.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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ý tin nhắn không mong muốn cho một giá trị nhận dạng hồ sơ nhất định.

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

Thông tin chi tiết
Các tham số
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] handler
Trình xử lý tin nhắn không mong muốn.
[in] allowDups
Chỉ báo giá trị boolean cho biết liệu một hồ sơ cụ thể có được phép trùng lặp hay không.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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ý trình xử lý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ nhất định.

Thông tin chi tiết
Các 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ý tin nhắn không mong muốn.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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ý trình xử lý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ nhất định.

Thông tin chi tiết
Các 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ý tin nhắn không mong muốn.
[in] allowDups
Chỉ báo bằng boolean cho biết có được phép sử dụng thông báo trùng lặp 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ỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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ý trình xử lý tin nhắn 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 kết nối Weave được chỉ định.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveConnection đại diện cho kết nối TCP với ứng dụng ngang hàng.
[in] handler
Trình xử lý tin nhắn không mong muốn.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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ý trình xử lý tin nhắn 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 kết nối Weave được chỉ định.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveConnection đại diện cho kết nối TCP với ứng dụng ngang hàng.
[in] handler
Trình xử lý tin nhắn không mong muốn.
[in] allowDups
Chỉ báo giá trị Boolean cho biết có cho phép thông báo trùng lặp 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 kết nối Weave được chỉ định.
[in] appState
Con trỏ đến một đối tượng lớp cao hơn giữ trạng thái ngữ cảnh.
Giá trị trả về
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Nếu nhóm trình xử lý tin nhắn không mong muốn đã đầy và không thể phân bổ một trình xử lý 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.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR vô điều kiện.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

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

Thông tin chi tiết
Các 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ý tin nhắn 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ý tin nhắn không mong muốn cho một loại thông báo và giá trị nhận dạng hồ sơ nhất định.

Thông tin chi tiết
Các 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ý tin nhắn 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.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveConnection đại diện cho 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ý tin nhắn 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.

Thao tác này sẽ đặt trạng thái thành kState_NotInitialized.