Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::WeaveMessageLayer

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

Định nghĩa của lớp WeaveMessageLayer, lớp này quản lý việc giao tiếp với các nút Weave khác.

Tóm tắt

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

Hàm dựng và hàm dựng

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

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 đến.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Hàm này là lệnh gọi lại ứ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 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 đường hầm trong một đường hầm UDP cục bộ.

Thuộc tính công khai

AppState
void *
Con trỏ trỏ đến đố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ờ 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, false nếu không.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[CHỈ ĐỌC] Đối tượng WeaveSecurityManager được liên kết.
State
uint8_t
[CHỈ SỬ DỤNG] Trạng thái của đối tượng WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Chỉ dành cho nội bộ và chỉ 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ả đ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 kết hợp hai WeaveConnections đã chỉ định.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Giải mã tiêu đề lớp Weave Message từ một thông báo Weave đã nhận.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Mã hóa tiêu đề WeaveMessageLayer thành PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Mã hoá tiêu đề lớp Weave Message thành một PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Kiểm tra xem có nên gửi các trao đổi UDP Weave UDP cục bộ từ mộ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 được 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 các thông tin liên lạc đến qua IPv4 hay không.
IPv6ListenEnabled(void) const
bool
Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe các thông tin liên lạc đế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 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 một địa chỉ IPv6 cục bộ hay không.
IsMessageLayerActive(void)
bool
NewConnection(void)
Tạo đối tượng WeaveConnection mới từ nhóm.
NewConnectionTunnel(void)
Tạo đối tượng WeaveConnectionTunnel mới từ mộ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 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 UDP Inetlayer 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 UDP Inetlayer 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 UDP Inetlayer 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 UDP Inetlayer cơ bản.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi thông báo Weave bằng điểm cuối UDP gốc Inetlayer 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 gốc Inetlayer 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 gốc Inetlayer sau khi mã hoá.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Hàm gửi một gói đường hầm qua một đường hầm UDP cục bộ.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Đặ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 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 để nghe các tin nhắn UDP đến hay không.
UnsecuredListenEnabled(void) const
bool
Bật hoặc tắt tính năng trao đổi Weave UDP 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
Tải kích thước nội dung tối đa của Weave cho một cấu hình thông báo và gói 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
Xây dựng một chuỗi mô tả nút ngang hàng và thông tin địa chỉ / kết nối liên quan.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Xây dựng một chuỗi mô tả nút ngang hàng dựa trên thông tin liên kết với tin nhắn nhận được từ ứng dụng ngang hàng.

Lớp

nl::Weave::WeaveMessageLayer::InitContext

Định nghĩa của lớp InitContext.

Loại công khai

Chấp nhận lỗi

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ỏ trỏ đến đối tượng WeaveMessageLayer.
[in] err
WEAVE_ERROR gặp phải khi xử lý kết nối TCP đến.

Đã gọi lại FunFun

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ỏ trỏ đến đối tượng trạng thái của ứng dụng.

Vui lòng kết nối

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 đến.

Thông tin chi tiết
Các 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 ứ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 1 yêu cầu trao đổi đang mở hoặc yêu cầu đồng bộ hoá thông báo phản đối đang chờ xử lý.

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 Weave qua UDP.

Thông tin chi tiết
Các 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ỏ trỏ đến thông báo PacketBuffer chứa gói đường hầm đã nhận.

Nhận lỗi

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ỏ trỏ đến đối tượng WeaveMessageLayer.
[in] err
WEAVE_ERROR gặp phải khi nhận dữ liệu.
[in] pktInfo
Con trỏ chỉ đọc tới đố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 tạo.

kState_NotInitialized

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

TunneledMessagesReceiveFunct

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 đường hầm trong một đường hầm UDP cục bộ.

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

Thuộc tính công khai

Trạng thái ứng dụng

void * AppState

Con trỏ trỏ đến đố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.

Trạng thái Fabric

WeaveFabricState * FabricState

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

Hệ thống thời gian chờ không hoạt động

uint32_t IncomingConIdleTimeout

Thời gian chờ 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 * Inet

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

Đang nghe

bool IsListening

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

Lỗi chấp nhận

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

Lỗi OnReceive

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

Bảo mật

WeaveSecurityManager * SecurityMgr

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

Tiểu bang

uint8_t State

[CHỈ SỬ DỤNG] Trạng thái của đối tượng WeaveMessageLayer.

Lớp hệ thống (SystemLayer)

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Chỉ dành cho nội bộ và chỉ 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
)

Điểm kết thúc đóng

WEAVE_ERROR CloseEndpoints(
  void
)

Đóng tất 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:
Hãy tắt().

Tạo đường hầm

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

Tạo WeaveConnectionTunnel bằng cách kết hợp hai WeaveConnections đã chỉ định.

Khi tạo thành công, TCPEndPoints tương ứng với các thành phần WeaveConnection được chuyển giao cho WeaveConnectionTunnel, nếu không, WeaveConnections đã đóng lại.

Thông tin chi tiết
Các tham số
[out] tunPtr
Con trỏ trỏ đến đối tượng của WeaveConnectionTunnel.
[in] conOne
Giá trị 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ể ở trạng thái rảnh.
Giá trị trả về
WEAVE_NO_ERROR
về việc tạo thành công WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
nếu thành phần WeaveConnection 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.

Giải mã tiêu đề

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

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

Thông tin chi tiết
Các tham số
[in] msgBuf
Con trỏ trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo. Đối tượng này sẽ 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 chuyể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ợ.

Mã hóa thư

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

Mã hóa tiêu đề WeaveMessageLayer thành PacketBuffer.

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về thông báo sẽ được 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ư Weave đã mã hoá.
[in] reserve
Không gian đặt trước trước trọng tải để chứa tiêu đề thông báo Weave.
Giá trị trả về
WEAVE_NO_ERROR
khi mã hoá thành công thư.
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 là 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ư được mã hoá sẽ dài hơn độ dài tối đa đã yêu cầu.
WEAVE_ERROR_BUFFER_TOO_SMALL
nếu không có đủ dung lượng trước hoặc sau khi trọng tải thư.
other
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.

Mã hóa thư

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

Mã hoá tiêu đề lớp Weave Message thành một 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ỏ 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 là 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ư được mã hoá sẽ dài hơn độ dài tối đa đã yêu cầu.
WEAVE_ERROR_BUFFER_TOO_SMALL
nếu không có đủ dung lượng trước hoặc sau khi trọng tải thư.
other
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 UDP cục bộ từ một cổng nguồn UDP tạm thời hay không.

Nhận kết nối hồ sơ

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

Nhận số lượng WeaveConnections đang được 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 được sử dụng được lưu trữ.

Đã bật IPv4Nghe

bool IPv4ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe các thông tin liên lạc đến qua IPv4 hay không.

Đã bật IPv6Nghe

bool IPv6ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe các thông tin liên lạc đến qua IPv4 hay không.

Init

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ỏ trỏ đến đối tượng InitContext.
Giá trị trả về
WEAVE_NO_ERROR
khi khởi động thành công.
WEAVE_ERROR_INVALID_ARGUMENT
nếu đối tượng InitContext đã chuyể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 được tạo từ lớp Inet thấp hơn trong quá trình tạo điểm cuối.

Địa chỉ IsBoundToLocalIPv4

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.

Địa chỉ IsBoundToLocalIPv66

bool IsBoundToLocalIPv6Address(
  void
) const 

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

IsMessageLayer đang hoạt động

bool IsMessageLayerActive(
  void
)

Kết nối mới

WeaveConnection * NewConnection(
  void
)

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

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

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Tạo đố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 được tạo nếu thành công, nếu không thì là NULL.

Tin nhắn mã hóa lại

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

Điểm cuối làm mới

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 giao diện mạng của hệ thống.

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

Gửi lại tin nhắn

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi lại thông báo 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ỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến lớp mạng.
errors
được tạo từ điểm cuối UDP lớp Inet thấp hơn trong khi gửi.

Gửi lại tin nhắn

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 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ỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến lớp mạng.
errors
được tạo từ điểm cuối UDP lớp Inet thấp hơn trong khi gửi.

Gửi lại tin nhắn

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 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ỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến lớp mạng.
errors
được tạo từ điểm cuối UDP lớp Inet thấp hơn trong khi gửi.

Gửi lại tin nhắn

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 UDP Inetlayer cơ bản.

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

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ỏ trỏ đến đối tượng WeaveMessageInfo.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến lớp mạng.
errors
được tạo từ điểm cuối UDP lớp Inet thấp hơn trong khi gửi.

Gửi tin nhắn

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về tin nhắn sẽ được gửi.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến lớp mạng.
errors
được tạo từ điểm cuối UDP lớp Inet thấp hơn trong khi gửi.

Gửi tin nhắn

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

Gửi thông báo Weave bằng điểm cuối UDP gốc Inetlayer 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 từ địa chỉ nhận dạng nút trong tiêu đề thư. Không thành công nếu không thể thực hiện việc này.

– Nếu địa chỉ điểm đến là địa chỉ vải cho vải địa phương và người gọi không chỉ định mã nút đích, hãy trích xuất địa chỉ đó từ địa chỉ điểm đến.

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

Gửi tin nhắn

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 gốc Inetlayer sau khi mã hoá.

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

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ỏ trỏ đến đối tượng WeaveMessageInfo chứa thông tin về tin nhắn sẽ được gửi.
[in] payload
Con trỏ trỏ đến đối tượng PacketBuffer chứa thông điệp Weave đã mã hoá.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến 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 lớp Inet thấp hơn trong khi gửi.

Gửi tin nhắn

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

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

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

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] destAddr
IPAddress của đường hầm UDP.
[in] msgBuf
Con trỏ trỏ đến đối tượng PacketBuffer đang giữ gói tin để gửi.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo đến 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 lớp Inet thấp hơn trong khi gửi.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Đặ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 giao dịch trao đổi đã mở thay đổi.
  • số lượng yêu cầu đồng bộ hóa bộ đếm tin nhắn đang chờ xử lý thay đổi từ 0 thành ít nhất một và trở về 0. Trình xử lý được phân phát dưới dạng tín hiệu chung cho biết có cuộc trò chuyện Weave đang diễn ra hay đang có phản hồi. Bạn phải đặt trình xử lý này sau khi khởi tạo WeaveMessageLayer; việc tắt WeaveMessageLayer sẽ xóa trình xử lý hiện tại.

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

Đã bật SetTCPNghe

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 được thay đổi.

Đã bật SetUDPNghe

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 được 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 lớp Inet mở, đặt lại tất cả các lệnh gọi lại lớp cao hơn, các biến thành phần và đối tượng. Lệnh gọi đến Offdown() chấm dứt đối tượng WeaveMessageLayer.

Đã bật TCPNghe

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.

Đã nghe UDP

bool UDPListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer có được định cấu hình để nghe các tin nhắn UDP đến hay không.

Đã bật Không bảo mật

bool UnsecuredListenEnabled(
  void
) const 

Bật hoặc tắt tính năng trao đổi Weave UDP 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 tính năng nghe không an toàn có được bật hay không.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

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

Hàm tĩnh công khai

Nhận kích thước tải tối đa

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

Tải kích thước nội dung tối đa của Weave cho một cấu hình thông báo và gói PacketBuffer đã cung cấp.

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

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

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

Thông tin chi tiết
Các tham số
[in] msgBuf
Con trỏ trỏ đến PacketBuffer mà gói dữ liệu tin nhắn sẽ được ghi vào đó.
[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. Bỏ qua nếu isUDP false.
Trả về
kích thước tải trọng Weave tối đa.

Nhận ngang hàng

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

Xây dựng một chuỗi mô tả nút ngang hàng và thông tin địa chỉ / kết nối liên quan.

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

 ([]:%, con )

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi. Vùng đệm được cung cấp tối thiểu phải bằng kWeaveNgangDescription_MaxLength. Nếu một vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ bị cắt ngắn cho vừa. Kết quả sẽ bao gồm ký tự chấm dứt NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm mà buf trỏ đến.
[in] nodeId
Mã nút cần in.
[in] addr
Con trỏ trỏ đến địa chỉ IP cần in; hoặc giá trị NULL nếu không in đị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 addr là NULL.
[in] interfaceId
Một UIId xác định giao diện sẽ được in. Chuỗi đầu ra sẽ chứa tên của giao diện như đã biết trong ngăn xếp mạng cơ bản. Tên giao diện sẽ không được in nếu UIId là INET_NULL_INTERFACEID hoặc nếu addr là NULL.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection có mã in nhật ký sẽ được in hoặc NULL nếu không in mã kết nối.

Nhận ngang hàng

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

Xây dựng một chuỗi mô tả nút ngang hàng dựa trên thông tin liên kết với tin nhắn nhận được từ ứng dụng ngang hàng.

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi. Vùng đệm được cung cấp tối thiểu phải bằng kWeaveNgangDescription_MaxLength. Nếu một vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ bị cắt ngắn cho vừa. Kết quả sẽ bao gồm ký tự chấm dứt NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm mà buf trỏ đến.
[in] msgInfo
Con trỏ trỏ đến cấu trúc WeaveMessageInfo chứa thông tin về tin nhắn đó.