nl::Weave::WeaveMessageLayer

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

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

Tóm tắt

Lớp này sử dụng một trong nhiều đ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à hàm phá

WeaveMessageLayer(void)
Hàm khởi tạo lớp Weave Messages.

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á một 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 ứng dụng để báo cáo sự thay đổi 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 Dệt qua UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Hàm này là lệnh gọi lại 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 gói có Đường hầm qua đường hầm UDP cục bộ.

Thuộc tính công khai

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

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 WeaveConnectionTunnel bằng cách ghép nối hai WeaveConnections được chỉ định.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Giải mã tiêu đề lớp Weave Messages từ thư Weave đã nhận.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Mã hoá tiêu đề WeaveMessageLayer vào một PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Mã hoá tiêu đề của lớp Weave Message (Thông báo) vào PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Kiểm tra xem các trao đổi UDP Weave được khởi tạo cục bộ có được gửi từ cổng nguồn UDP tạm thời hay không.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Biết 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 để nghe thông tin trao đổi đến qua IPv4 hay không.
IPv6ListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe thông tin trao đổi đến qua IPv4 hay không.
Init(InitContext *context)
Khởi động đối tượng lớp Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Kiểm tra xem WeaveMessageLayer có được liên kết với đị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ừ một nhóm.
NewConnectionTunnel(void)
Tạo một đối tượng WeaveConnectionTunnel mới từ một nhóm.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Làm mới điểm cuối InetLayer dựa trên trạng thái hiện tại của giao diện mạng trên hệ thống.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave đã mã hoá bằng điểm cuối UDP Inetlayer cơ bản.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave đã mã hoá bằng điểm cuối UDP Inetlayer cơ bản.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave đã mã hoá bằng điểm cuối UDP Inetlayer cơ bản.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave đã mã hoá bằng điểm cuối UDP Inetlayer 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 tin Đường hầm qua đường hầm UDP cục bộ.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Đặt 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 nghe 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 tin nhắn 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 để nghe tin nhắn UDP đến hay không.
UnsecuredListenEnabled(void) const
bool
Bật hoặc tắt tính năng khởi tạo các 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 tối đa của Weave cho cấu hình thông báo và cung cấp gói PacketBuffer.
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ả nút ngang hàng và thông tin địa chỉ / kết nối liên kết của nút đó.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Tạo một chuỗi 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ừ ứng dụng 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.

Thông tin chi tiết
Các tham số
[in] msgLayer
Con trỏ đến đối tượng WeaveMessageLayer.
[in] err
Đã xảy ra WEAVE_ERROR khi xử lý kết nối TCP đến.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

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

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

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

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Hàm này là lệnh gọi lại ứng dụng để báo cáo sự thay đổi 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 yêu cầu đồng bộ hoá bộ đếm tin nhắn đang chờ xử lý hoặc trao đổi mở.

Thông tin chi tiết
Các 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 Dệt qua UDP.

Thông tin chi tiết
Các tham số
[in] msgLayer
Con trỏ đến đối tượng WeaveMessageLayer.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến thông báo PacketBuffer có chứa gói đượ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 lớp cao hơn được gọi khi gặp lỗi.

Thông tin chi tiết
Các tham số
[in] msgLayer
Con trỏ đến đối tượng WeaveMessageLayer.
[in] err
Đã gặp phải WEAVE_ERROR khi nhận dữ liệu.
[in] pktInfo
Con trỏ chỉ có thể đọ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 chạy WeaveMessageLayer.

kState_Initializing

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

kState_NotInitialized

Trạng thái khi WeaveMessageLayer chưa được khởi động.

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 gói có Đường hầm qua đường hầm UDP cục bộ.

Thông tin chi tiết
Các tham số
[in] msgLayer
Con trỏ đến đối tượng WeaveMessageLayer.
[in] payload
Con trỏ đến thông báo PacketBuffer có chứa gói được tạo đường hầm đã nhận.

Thuộc tính công khai

AppState

void * AppState

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

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

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

FabricState

WeaveFabricState * FabricState

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

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Thời gian chờ mặc định ở trạng thái rảnh (tính bằng mili giây) cho các kết nối đến.

Inet

InetLayer * Inet

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

IsListening

bool IsListening

[READ ONLY] Nếu đang nghe tin nhắn/kết nối đến, thì "false" nếu không nghe.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

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

Tiểu bang

uint8_t State

[READ ONLY] Trạng thái của đối tượng WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Nội bộ và chỉ dành cho việc gỡ lỗi; Khi được đặt, WeaveMessageLayer sẽ bỏ thông báo và trả về.

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 WeaveConnectionTunnel bằng cách ghép nối hai WeaveConnections được chỉ định.

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.

Thông tin chi tiết
Các 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 WeaveConnection thành phần của WeaveConnectionTunnel không ở trạng thái chính xác.
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 Messages từ thư Weave đã nhận.

Thông tin chi tiết
Các tham số
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo, đối tượng này sẽ nhận thông tin về tin nhắn.
[out] payloadStart
Con trỏ trỏ tới 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 đề của 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 một PacketBuffer.

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo có chứa thông tin về thông báo cần mã hoá.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer sẽ lưu giữ thông báo Weave.
[in] con
Con 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 đề của thông báo Weave.
Giá trị trả về
WEAVE_NO_ERROR
về việc mã hoá thông báo thành công.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
nếu phiên bản định dạng tiêu đề của 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 kích thước 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 thư.
other
lỗi do đối tượng trạng thái kết cấu 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 đề của lớp Weave Message (Thông báo) vào PacketBuffer.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến đối tượng PacketBuffer sẽ lưu giữ thông báo Weave.
Giá trị trả về
WEAVE_NO_ERROR
về việc 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á này không được hỗ trợ.
WEAVE_ERROR_MESSAGE_TOO_LONG
nếu thông báo được mã hoá dài hơn kích thước 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 thư.
other
lỗi do đối tượng trạng thái kết cấu tạo ra khi tìm nạp trạng thái phiên.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

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

GetConnectionPoolStats

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

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

Thông tin chi tiết
Các 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 để nghe thông tin trao đổi đến qua IPv4 hay không.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe thông tin trao đổi đến qua IPv4 hay không.

Bắt đầu

WEAVE_ERROR Init(
  InitContext *context
)

Khởi động đối tượng lớp Weave Message.

Thông tin chi tiết
Các tham số
[in] context
Con 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à 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 do lớp Inet thấp hơn tạo ra 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 đị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ừ một nhóm.

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

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

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

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

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

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

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

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình gửi.

ResendMessage

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

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

Thông tin chi tiết
Các tham số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình gửi.

ResendMessage

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

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

Thông tin chi tiết
Các tham số
[in] destAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình gửi.

ResendMessage

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

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

Lưu ý: Nếu bạn chưa cung cấp địa chỉ đích, hãy cố gắng xác định địa chỉ này bằng mã nhận dạng nút trong tiêu đề thư. Sẽ không thành công nếu không thể thực hiện thao tác này. - Nếu địa chỉ đích là địa chỉ kết nối cho kết cấu cục bộ và phương thức gọi không chỉ định mã nhận dạng nút đích, hãy trích xuất mã này từ địa chỉ đích.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình 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á.

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo có chứa thông tin về tin nhắn sẽ gửi.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình 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 từ mã nhận dạng nút trong tiêu đề thư. Sẽ không thành công nếu không thể thực hiện thao tác này.

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

Thông tin chi tiết
Các tham số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo có chứa thông tin về tin nhắn sẽ gửi.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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 thấp hơn trong quá trình 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 bạn chưa cung cấp địa chỉ đích, hãy cố gắng xác định địa chỉ này bằng mã nhận dạng nút trong tiêu đề thư. Sẽ không thành công nếu không thể thực hiện thao tác này. - Nếu địa chỉ đích là địa chỉ kết nối cho kết cấu cục bộ và phương thức gọi không chỉ định mã nhận dạng nút đích, hãy trích xuất mã này từ địa chỉ đích.

Thông tin chi tiết
Các 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ỏ đến đối tượng WeaveMessageInfo có chứa thông tin về tin nhắn sẽ gửi.
[in] payload
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave được 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ể được xác định từ id nút đích.
errors
được tạo từ điểm cuối UDP của lớp Inet thấp hơn trong quá trình gửi.

SendUDPTunneledMessage

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

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

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

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] destAddr
IPAddress của đích đến của đường hầm UDP.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer đang giữ gói dữ liệu để 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ể được xác định từ id nút đích.
errors
được tạo từ điểm cuối UDP của lớp Inet thấp hơn trong quá trình gửi.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Đặt 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ẽ được thông báo mỗi lần:

  • số lượng sàn giao dịch đã mở thay đổi.
  • 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 một và quay về 0. Trình xử lý đượ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 có phản hồi đang chờ xử lý hay không. Bạn phải đặt 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.

Thông tin chi tiết
Các tham số
[in] messageLayerActivityChangeHandler
Con trỏ đến một hàm sẽ được gọi mỗi khi 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 nghe 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 tin nhắn 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 lớp cao hơn, biến thành phần và đối tượng. Lệnh gọi shdown() 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 để nghe tin nhắn UDP đến hay không.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Hàm khởi tạo lớp Weave Messages.

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 tối đa của Weave cho cấu hình thông báo và cung cấp gói PacketBuffer.

Kích thước tải trọng tối đa được trả về sẽ không vượt quá không gian 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, 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 tràn UDP MTU đã chỉ định.

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

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

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ả nút ngang hàng và thông tin địa chỉ / kết nối liên kết của nút đó.

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

 ([]:%, con )

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ đến một vùng đệm mà chuỗi sẽ được ghi vào đó. 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ẽ bị cắt bớt cho vừa. Kết quả 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 được trỏ đến bởi buf.
[in] nodeId
Mã nhận dạng nút sẽ được in.
[in] addr
Con trỏ tới địa chỉ IP sẽ được in; hoặc NULL nếu không in ra địa chỉ IP nào.
[in] port
Số cổng IP sẽ được in. Sẽ không có số cổng nào được in nếu giá trị addr là NULL.
[in] interfaceId
Một InterfaceId xác định giao diện cần 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ệnId là INET_NULL_ URLFACEID hoặc nếu addr là NULL.
[in] con
Con trỏ đến một đối tượng WeaveConnection có mã ghi nhật ký cần được in; hoặc giá trị 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ả 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ừ ứng dụng ngang hàng.

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ đến một vùng đệm mà chuỗi sẽ được ghi vào đó. 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ẽ bị cắt bớt cho vừa. Kết quả 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 được trỏ đến bởi buf.
[in] msgInfo
Con trỏ đến cấu trúc WeaveMessageInfo chứa thông tin về thông báo.