nl::Weave::WeaveMessageLayer

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

Định nghĩa về lớp WeaveMessageLayer quản lý hoạt động giao tiếp với các nút Weave khác.

Tóm tắt

API này sử dụng một trong số các điểm cuối InetLayer để thiết lập kênh liên lạc với các nút Weave khác.

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

WeaveMessageLayer(void)
Hàm khởi tạo lớp Weave Message (Thông báo dạng Weave).

Loại công khai

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Hàm này là lệnh gọi lại lớp cao hơn để báo cáo lỗi trong quá trình xử lý kết nối TCP đến.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Hàm này được gọi để xoá lệnh gọi lại.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Hàm này là lệnh gọi lại lớp cao hơn để xử lý kết nối TCP sắp tới.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để báo cáo thay đổi về hoạt động của lớp thông báo.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Hàm này là lệnh gọi lại lớp cao hơn được gọi khi nhận được thông báo Weave qua UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Hàm này là lệnh gọi lại của lớp cao hơn được gọi khi gặp lỗi.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Trạng thái của WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Hàm này là lệnh gọi lại lớp cao hơn được gọi khi nhận được một gói được tạo đường hầm qua một đường hầm UDP cục bộ.

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

AppState
void *
Con trỏ trỏ đến một đối tượng trạng thái dành riêng cho ứng dụng.
ExchangeMgr
[CHỈ ĐỌC] Đối tượng WeaveExchangeManager được liên kết.
FabricState
[CHỈ ĐỌC] Đối tượng WeaveFabricState được liên kết.
IncomingConIdleTimeout
uint32_t
Thời gian chờ ở trạng thái không hoạt động mặc định (tính bằng mili giây) cho các kết nối đến.
Inet
InetLayer *
[CHỈ ĐỌC] Đối tượng InetLayer được liên kết.
IsListening
bool
[CHỈ ĐỌC] Đúng nếu nghe kết nối/tin nhắn đến, nếu không thì là false.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[CHỈ ĐỌC] Đối tượng WeaveSecurityManager được liên kết.
State
uint8_t
[CHỈ ĐỌC] Trạng thái của đối tượng WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Chỉ dùng nội bộ và chỉ dùng để gỡ lỗi; Khi được đặt, WeaveMessageLayer sẽ bỏ thông báo và quay lại.

Hàm công khai

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Đóng tất cả các điểm cuối TCP và UDP đang mở.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Tạo một WeaveConnectionTunnel bằng cách ghép 2 WeaveConnections được chỉ định với nhau.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Giải mã tiêu đề lớp Weave Message (Thông điệp Weave) từ thông báo Weave đã nhận.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Mã hoá tiêu đề WeaveMessageLayer vào PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Mã hoá tiêu đề lớp Weave Message (Thông báo dạng Weave) vào PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Kiểm tra xem có nên gửi các trao đổi UDP Weave được khởi tạo cục bộ từ cổng nguồn UDP tạm thời hay không.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Nhận số lượng WeaveConnections đang sử dụng và kích thước của nhóm.
IPv4ListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông tin giao tiếp đến qua IPv4 hay không.
IPv6ListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông tin giao tiếp đến qua IPv4 hay không.
Init(InitContext *context)
Khởi động đối tượng lớp Weave Message (Thông báo dạng Weave).
IsBoundToLocalIPv4Address(void) const
bool
Kiểm tra xem WeaveMessageLayer có được liên kết với một địa chỉ IPv4 cục bộ hay không.
IsBoundToLocalIPv6Address(void) const
bool
Kiểm tra xem WeaveMessageLayer có được liên kết với địa chỉ IPv6 cục bộ hay không.
IsMessageLayerActive(void)
bool
NewConnection(void)
Tạo một đối tượng WeaveConnection mới từ nhóm.
NewConnectionTunnel(void)
Tạo một đối tượng WeaveConnectionTunnel mới từ nhóm.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Làm mới các điểm cuối InetLayer dựa trên trạng thái hiện tại của các giao diện mạng của hệ thống.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Hàm gửi một gói có đường hầm qua một đường hầm UDP cục bộ.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Thiết lập một trình xử lý ứng dụng sẽ được gọi mỗi khi hoạt động của lớp thông báo thay đổi.
SetTCPListenEnabled(bool val)
void
Bật hoặc tắt tính năng theo dõi các kết nối TCP đến trong WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Bật hoặc tắt tính năng nghe thông báo UDP đến trong WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi các kết nối TCP đến hay không.
UDPListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông báo UDP đến hay không.
UnsecuredListenEnabled(void) const
bool
Bật hoặc tắt tính năng khởi động trao đổi UDP Weave từ cổng nguồn UDP tạm thời.

Hàm tĩnh công khai

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Lấy kích thước tải trọng Weave tối đa cho cấu hình thông báo và PacketBuffer đã cung cấp.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Tạo một chuỗi mô tả một nút ngang hàng và thông tin về kết nối / địa chỉ liên quan của nút đó.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Tạo một chuỗi mô tả một nút ngang hàng dựa trên thông tin liên kết với thông báo nhận được từ nút ngang hàng.

Lớp

nl::Weave::WeaveMessageLayer::InitContext

Định nghĩa về lớp InitContext.

Loại công khai

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

Hàm này là lệnh gọi lại lớp cao hơn để báo cáo lỗi trong quá trình xử lý kết nối TCP đến.

Chi tiết
Tham số
[in] msgLayer
Con trỏ trỏ đến đối tượng WeaveMessageLayer.
[in] err
Lỗi WEAVE_ERROR gặp phải khi xử lý kết nối TCP đến.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Hàm này được gọi để xoá lệnh gọi lại.

Chi tiết
Tham số
[in] listenerState
Con trỏ trỏ đến đối tượng trạng thái ứng dụng.

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

Hàm này là lệnh gọi lại lớp cao hơn để xử lý kết nối TCP sắp tới.

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

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Hàm này là lệnh gọi lại của ứng dụng để báo cáo thay đổi về hoạt động của lớp thông báo.

Lớp thông báo được coi là đang hoạt động nếu có ít nhất một lần trao đổi tin nhắn hoặc yêu cầu đồng bộ hoá bộ đếm tin nhắn đang chờ xử lý.

Chi tiết
Tham số
[in] messageLayerIsActive
Giá trị boolean cho biết lớp thông báo có đang hoạt động hay không.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

Hàm này là lệnh gọi lại lớp cao hơn được gọi khi nhận được thông báo Weave qua UDP.

Chi tiết
Tham số
[in] msgLayer
Con trỏ trỏ đến đối tượng WeaveMessageLayer.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến thông báo PacketBuffer chứa gói dữ liệu được tạo đường hầm đã nhận.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Hàm này là lệnh gọi lại của lớp cao hơn được gọi khi gặp lỗi.

Chi tiết
Tham số
[in] msgLayer
Con trỏ trỏ đến đối tượng WeaveMessageLayer.
[in] err
Đã xảy ra lỗi WEAVE_ERROR khi nhận dữ liệu.
[in] pktInfo
Con trỏ chỉ đọc đến đối tượng IPPacketInfo.

Tiểu bang

 State

Trạng thái của WeaveMessageLayer.

Thuộc tính
kState_Initialized

Trạng thái khi khởi động WeaveMessageLayer.

kState_Initializing

Trạng thái khi WeaveMessageLayer đang trong quá trình khởi tạo.

kState_NotInitialized

Trạng thái khi chưa khởi chạy WeaveMessageLayer.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

Hàm này là lệnh gọi lại lớp cao hơn được gọi khi nhận được một gói được tạo đường hầm qua một đường hầm UDP cục bộ.

Chi tiết
Tham số
[in] msgLayer
Con trỏ trỏ đến đối tượng WeaveMessageLayer.
[in] payload
Con trỏ đến thông báo PacketBuffer chứa gói dữ liệu được tạo đường hầm đã nhận.

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

AppState

void * AppState

Con trỏ trỏ đến một đối tượng trạng thái dành riêng cho ứng dụng.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

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

FabricState

WeaveFabricState * FabricState

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

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Thời gian chờ ở trạng thái không hoạt động mặc định (tính bằng mili giây) đối với các kết nối đến.

Inet

InetLayer * Inet

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

IsListening

bool IsListening

[CHỈ ĐỌC] Đúng nếu nghe kết nối/tin nhắn đến, nếu không thì là false.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

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

Tiểu bang

uint8_t State

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

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Chỉ dùng nội bộ và chỉ dùng để gỡ lỗi; Khi được đặt, WeaveMessageLayer sẽ bỏ thông báo và quay lại.

Hàm công khai

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Đóng tất cả các điểm cuối TCP và UDP đang mở.

Sau đó, huỷ mọi WeaveConnections đang mở và tắt mọi đối tượng WeaveConnectionTunnel đang mở.

Xem thêm:
Shutdown().

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

Tạo một WeaveConnectionTunnel bằng cách ghép 2 WeaveConnections được chỉ định với nhau.

Khi tạo thành công, TCPEndPoint tương ứng với các đối tượng WeaveConnection thành phần sẽ được chuyển giao cho WeaveConnectionTunnel, nếu không thì WeaveConnections sẽ bị đóng.

Chi tiết
Tham số
[out] tunPtr
Con trỏ tới con trỏ của đối tượng WeaveConnectionTunnel.
[in] conOne
Tham chiếu đến đối tượng WeaveConnection đầu tiên.
[in] conTwo
Tham chiếu đến đối tượng WeaveConnection thứ hai.
[in] inactivityTimeoutMS
Thời gian tối đa (tính bằng mili giây) mà đường hầm kết nối Weave có thể không hoạt động.
Giá trị trả về
WEAVE_NO_ERROR
về việc tạo thành công WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
nếu các đối tượng thành phần WeaveConnection của WeaveConnectionTunnel không ở trạng thái phù hợp.
WEAVE_ERROR_NO_MEMORY
nếu không thể tạo đối tượng WeaveConnectionTunnel mới.

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Giải mã tiêu đề lớp Weave Message (Thông báo Weave) từ thông báo Weave đã nhận.

Chi tiết
Tham số
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang chứa thông báo Weave.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo nhận thông tin về thông báo.
[out] payloadStart
Con trỏ trỏ đến vị trí trong vùng đệm thông báo sau khi giải mã xong.
Giá trị trả về
WEAVE_NO_ERROR
Khi giải mã thành công tiêu đề thư.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Nếu vùng đệm thông báo được truyền có độ dài không hợp lệ.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Nếu phiên bản định dạng tiêu đề Weave Message không được hỗ trợ.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Mã hoá tiêu đề WeaveMessageLayer vào PacketBuffer.

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về thông báo cần mã hoá.
[in] msgBuf
Con trỏ trỏ đến đối tượng PacketBuffer sẽ chứa thông báo Weave.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] maxLen
Độ dài tối đa của thông báo Weave được mã hoá.
[in] reserve
Không gian dành riêng trước tải trọng để chứa tiêu đề thông báo Weave.
Giá trị trả về
WEAVE_NO_ERROR
khi mã hoá thành công thông báo.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
nếu phiên bản định dạng tiêu đề Weave Message không được hỗ trợ.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
nếu độ dài tải trọng trong vùng đệm thông báo bằng 0.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
nếu loại mã hoá trong tiêu đề thư không được hỗ trợ.
WEAVE_ERROR_MESSAGE_TOO_LONG
nếu thông báo được mã hoá dài hơn giới hạn tối đa được yêu cầu.
WEAVE_ERROR_BUFFER_TOO_SMALL
nếu không có đủ dung lượng trước hoặc sau tải trọng tin nhắn.
other
các lỗi do đối tượng trạng thái vải tạo ra khi tìm nạp trạng thái phiên.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Mã hoá tiêu đề lớp Weave Message (Thông báo dạng Weave) vào PacketBuffer.

Chi tiết
Tham số
[in] destAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] sendIntId
Giao diện để gửi thông báo Weave.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer sẽ chứa thông báo Weave.
Giá trị trả về
WEAVE_NO_ERROR
khi mã hoá thành công thông báo Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
nếu phiên bản Weave Message không được hỗ trợ.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
nếu độ dài tải trọng trong vùng đệm thông báo bằng 0.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
nếu loại mã hoá không được hỗ trợ.
WEAVE_ERROR_MESSAGE_TOO_LONG
nếu thông báo được mã hoá dài hơn giới hạn tối đa được yêu cầu.
WEAVE_ERROR_BUFFER_TOO_SMALL
nếu không có đủ dung lượng trước hoặc sau tải trọng tin nhắn.
other
các lỗi do đối tượng trạng thái vải tạo ra khi tìm nạp trạng thái phiên.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Kiểm tra xem có nên gửi các trao đổi UDP Weave được khởi tạo cục bộ từ cổng nguồn UDP tạm thời hay không.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

Nhận số lượng WeaveConnections đang sử dụng và kích thước của nhóm.

Chi tiết
Tham số
[out] aOutInUse
Tham chiếu đến size_t, trong đó số lượng kết nối đang sử dụng được lưu trữ.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông tin giao tiếp đến qua IPv4 hay không.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông tin giao tiếp đến qua IPv4 hay không.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Khởi động đối tượng lớp Weave Message (Thông báo dạng Weave).

Chi tiết
Tham số
[in] context
Con trỏ trỏ đến đối tượng InitContext.
Giá trị trả về
WEAVE_NO_ERROR
khi khởi chạy thành công.
WEAVE_ERROR_INVALID_ARGUMENT
nếu đối tượng InitContext được truyền là giá trị NULL.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái của đối tượng WeaveMessageLayer không chính xác.
other
các lỗi phát sinh từ lớp Inet dưới trong quá trình tạo điểm cuối.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được liên kết với một địa chỉ IPv4 cục bộ hay không.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được liên kết với địa chỉ IPv6 cục bộ hay không.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Tạo một đối tượng WeaveConnection mới từ nhóm.

Chi tiết
Trả về
một con trỏ đến đối tượng WeaveConnection mới tạo nếu thành công, nếu không giá trị sẽ là NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Tạo một đối tượng WeaveConnectionTunnel mới từ nhóm.

Chi tiết
Trả về
một con trỏ đến đối tượng WeaveConnectionTunnel mới tạo nếu thành công, nếu không thì là giá trị NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Làm mới các điểm cuối InetLayer dựa trên trạng thái hiện tại của các giao diện mạng của hệ thống.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi làm mới thành công điểm cuối.
InetLayer
dựa trên các lệnh gọi để tạo điểm cuối TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.

Chi tiết
Tham số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.

Chi tiết
Tham số
[in] destAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi lại thông báo Weave đã mã hoá bằng điểm cuối Inetlayer UDP cơ bản.

Lưu ý: – Nếu địa chỉ đích chưa được cung cấp, hãy thử xác định địa chỉ đó bằng giá trị nhận dạng nút trong tiêu đề thông báo. Nếu việc này không thực hiện được. -Nếu địa chỉ đích là địa chỉ vải cho vải cục bộ và phương thức gọi không chỉ định id nút đích, hãy trích xuất nó từ địa chỉ đích.

Chi tiết
Tham số
[in] aDestAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] interfaceId
Giao diện để gửi thông báo Weave.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về thông báo cần gửi.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.

Lưu ý: – Cổng đích được sử dụng là WEAVE_PORT. – Nếu địa chỉ đích chưa được cung cấp, hãy cố gắng xác định địa chỉ này bằng từ định danh nút trong tiêu đề thư. Nếu việc này không thực hiện được.

-Nếu địa chỉ đích là địa chỉ vải cho vải cục bộ và phương thức gọi không chỉ định id nút đích, hãy trích xuất nó từ địa chỉ đích.

Chi tiết
Tham số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về thông báo cần gửi.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi thông báo Weave bằng điểm cuối UDP Inetlayer cơ bản sau khi mã hoá.

Lưu ý: – Nếu địa chỉ đích chưa được cung cấp, hãy thử xác định địa chỉ đó bằng giá trị nhận dạng nút trong tiêu đề thông báo. Nếu việc này không thực hiện được. -Nếu địa chỉ đích là địa chỉ vải cho vải cục bộ và phương thức gọi không chỉ định id nút đích, hãy trích xuất nó từ địa chỉ đích.

Chi tiết
Tham số
[in] aDestAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] sendIntfId
Giao diện để gửi thông báo Weave.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về thông báo cần gửi.
[in] payload
Con trỏ trỏ vào đối tượng PacketBuffer chứa thông báo Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
WEAVE_ERROR_INVALID_ADDRESS
nếu destAddr không được chỉ định hoặc không thể xác định được từ id nút đích.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Hàm gửi một gói có đường hầm qua một đường hầm UDP cục bộ.

Gửi thông báo dữ liệu IPv6 được tạo đường hầm qua UDP.

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] destAddr
IPAddress của đích đến của đường hầm UDP.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang giữ gói cần gửi.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
WEAVE_ERROR_INVALID_ADDRESS
nếu destAddr không được chỉ định hoặc không thể xác định được từ id nút đích.
errors
được tạo từ điểm cuối UDP của lớp Inet trong khi gửi.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Thiết lập một trình xử lý ứng dụng sẽ được gọi mỗi khi hoạt động của lớp thông báo thay đổi.

Cụ thể, ứng dụng sẽ nhận được thông báo mỗi khi:

  • số lượng thay đổi giao dịch mở.
  • số lượng yêu cầu đồng bộ hoá bộ đếm tin nhắn đang chờ xử lý thay đổi từ 0 thành ít nhất 1 và giảm về 0. Bộ xử lý này được đóng vai trò là tín hiệu chung cho biết liệu có cuộc trò chuyện Weave nào đang diễn ra hay đang chờ xử lý phản hồi hay không. Bạn phải thiết lập trình xử lý sau khi khởi chạy WeaveMessageLayer; việc tắt WeaveMessageLayer sẽ xoá trình xử lý hiện tại.

Chi tiết
Tham số
[in] messageLayerActivityChangeHandler
Con trỏ trỏ đến một hàm được gọi bất cứ khi nào hoạt động của lớp thông báo thay đổi.
Giá trị trả về
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Bật hoặc tắt tính năng theo dõi các kết nối TCP đến trong WeaveMessageLayer.

LƯU Ý: RefreshEndpoints() phải được gọi sau khi trạng thái nghe TCP thay đổi.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Bật hoặc tắt tính năng nghe thông báo UDP đến trong WeaveMessageLayer.

LƯU Ý: RefreshEndpoints() phải được gọi sau khi trạng thái nghe UDP thay đổi.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Tắt

WEAVE_ERROR Shutdown(
  void
)

Tắt WeaveMessageLayer.

Đóng tất cả điểm cuối của lớp Inet đang mở, đặt lại tất cả các lệnh gọi lại của lớp cao hơn, các biến thành phần và đối tượng. Lệnh gọi đến Shutdown() sẽ chấm dứt đối tượng WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi các kết nối TCP đến hay không.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để theo dõi thông báo UDP đến hay không.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Bật hoặc tắt tính năng khởi động trao đổi UDP Weave từ cổng nguồn UDP tạm thời.

LƯU Ý: RefreshEndpoints() phải được gọi sau khi trạng thái cổng tạm thời thay đổi. Kiểm tra xem bạn đã bật tính năng nghe không an toàn hay chưa.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Hàm khởi tạo lớp Weave Message (Thông báo dạng Weave).

Hàm tĩnh công khai

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

Lấy kích thước tải trọng Weave tối đa cho cấu hình thông báo và PacketBuffer đã cung cấp.

Kích thước tải trọng tối đa được trả về sẽ không vượt quá dung lượng có sẵn cho một tải trọng bên trong PacketBuffer được cung cấp.

Nếu thông báo là UDP, thì kích thước tải trọng tối đa được trả về sẽ không dẫn đến thông báo Weave không làm tràn UDP MTU được chỉ định.

Cuối cùng, kích thước tải trọng tối đa được trả về sẽ không dẫn đến thông báo Weave vượt quá kích thước thông báo Weave tối đa.

Chi tiết
Tham số
[in] msgBuf
Con trỏ tới PacketBuffer mà tải trọng thông báo sẽ được ghi.
[in] isUDP
Đúng nếu tin nhắn là thông báo UDP.
[in] udpMTU
Kích thước của UDP MTU. Sẽ bỏ qua nếu isUDP là false.
Trả về
kích thước tải trọng Weave tối đa.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

Tạo một chuỗi mô tả một nút ngang hàng và thông tin về kết nối / địa chỉ liên quan của nút đó.

Chuỗi được tạo có định dạng như sau:

 ([]:%, con )

Chi tiết
Tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi vào vùng đệm. Vùng đệm được cung cấp ít nhất phải lớn bằng kWeavePeerDescription_MaxLength. Nếu vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ được cắt bớt cho phù hợp. Dữ liệu đầu ra sẽ bao gồm một ký tự kết thúc NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm trỏ bởi buf.
[in] nodeId
Mã nút cần in.
[in] addr
Con trỏ trỏ đến địa chỉ IP cần in; hoặc NULL nếu không in địa chỉ IP.
[in] port
Số cổng IP sẽ được in. Sẽ không có số cổng nào được in nếu địa chỉ là NULL.
[in] interfaceId
Giao diện Mã giao diện xác định giao diện sẽ được in. Chuỗi đầu ra sẽ chứa tên của giao diện được gọi là ngăn xếp mạng cơ bản. Sẽ không có tên giao diện nào được in nếu giao diện ID là INET_NULL_INTERFACEID hoặc nếu addr là NULL.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection có mã nhật ký sẽ được in; hoặc NULL nếu không in mã kết nối nào.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

Tạo một chuỗi mô tả một nút ngang hàng dựa trên thông tin liên kết với thông báo nhận được từ nút ngang hàng.

Chi tiết
Tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi vào vùng đệm. Vùng đệm được cung cấp ít nhất phải lớn bằng kWeavePeerDescription_MaxLength. Nếu vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ được cắt bớt cho phù hợp. Dữ liệu đầu ra sẽ bao gồm một ký tự kết thúc NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm trỏ bởi buf.
[in] msgInfo
Con trỏ trỏ đến cấu trúc WeaveMessageInfo chứa thông tin về thông báo.