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 :: Dệt :: WeaveMessageLayer

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

Định nghĩa của WeaveMessageLayer lớp, trong đó quản lý thông tin liên lạc với các nút Weave khác.

Tóm lược

Nó sử dụng một trong một số điểm cuối InetLayer để thiết lập kênh giao tiếp với các nút Weave khác.

Người xây dựng và Người phá hủy

WeaveMessageLayer (void)
Phương thức khởi tạo lớp Thông điệp Weave.

Các loại công khai

AcceptErrorFunct )(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Chức năng 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 để loại bỏ 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(*
Chức năng này là ứng dụng gọi lại để 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 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
Tình trạng 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 Tunneled qua đường hầm UDP cục bộ.

Thuộc tính công cộng

AppState
void *
Một con trỏ đến một đối tượng trạng thái dành riêng cho ứng dụng.
ExchangeMgr
[READ ONLY] Các liên WeaveExchangeManager đối tượng.
FabricState
[READ ONLY] Các liên WeaveFabricState đối tượng.
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 lắng nghe kết nối / tin nhắn đến, nếu không thì sai.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] Các liên WeaveSecurityManager đối tượng.
State
uint8_t
[READ ONLY] Tình trạng của WeaveMessageLayer đối tượng.
SystemLayer
mDropMessage
bool
Nội bộ và chỉ để gỡ lỗi; Khi thiết lập, WeaveMessageLayer giọt nhắn và lợi nhuận.

Chức năng công cộng

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 kết hợp với nhau hai WeaveConnections quy định.
DecodeHeader ( PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Giải mã tiêu đề lớp Thông báo Weave từ thông báo Weave đã nhận.
EncodeMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Mã hóa một WeaveMessageLayer tiêu đề thành một PacketBuffer.
EncodeMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Mã hóa tiêu đề lớp Thông báo Weave thành Bộ đệm gói.
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ừ 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 sử dụng và kích thước của hồ bơi.
IPv4ListenEnabled (void) const
bool
Kiểm tra xem WeaveMessageLayer được cấu hình để nghe cho truyền thông trong nước so với IPv4.
IPv6ListenEnabled (void) const
bool
Kiểm tra xem WeaveMessageLayer được cấu hình để nghe cho truyền thông trong nước so với IPv4.
Init ( InitContext *context)
Khởi tạo đối tượng lớp Weave Message.
IsBoundToLocalIPv4Address (void) const
bool
Kiểm tra xem WeaveMessageLayer được ràng buộc với một địa chỉ IPv4 địa phương.
IsBoundToLocalIPv6Address (void) const
bool
Kiểm tra xem WeaveMessageLayer được ràng buộc với một địa chỉ IPv6 địa phương.
IsMessageLayerActive (void)
bool
NewConnection (void)
Tạo mới WeaveConnection đối tượng từ một hồ bơi.
NewConnectionTunnel (void)
Tạo mới WeaveConnectionTunnel đối tượng từ một hồ bơi.
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 tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.
ResendMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.
ResendMessage (const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.
ResendMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi lại tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.
SendMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.
SendMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.
SendMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.
SendUDPTunneledMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Chức năng gửi một gói Tunneled qua một đườ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 nghe vô hiệu hóa cho các kết nối TCP inbound trong WeaveMessageLayer .
SetUDPListenEnabled (bool val)
void
Bật hoặc nghe vô hiệu hóa cho các tin nhắn UDP tới trong WeaveMessageLayer .
SetUnsecuredConnectionListener ( ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown (void)
Shutdown WeaveMessageLayer .
TCPListenEnabled (void) const
bool
Kiểm tra xem WeaveMessageLayer được cấu hình để lắng nghe cho các kết nối TCP gửi đến.
UDPListenEnabled (void) const
bool
Kiểm tra xem WeaveMessageLayer được cấu hình để lắng nghe thông điệp UDP tới.
UnsecuredListenEnabled (void) const
bool
Bật hoặc tắt việc bắt đầu trao đổi Weave UDP từ một cổng nguồn UDP tạm thời.

Chức năng tĩnh công khai

GetMaxWeavePayloadSize (const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Nhận kích thước tải trọng Weave tối đa cho cấu hình tin nhắn và PacketBuffer được 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ả một nút ngang hàng và thông tin kết nối / địa chỉ liên quan của nó.
GetPeerDescription (char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Xây dựng một chuỗi mô tả một nút ngang hàng dựa trên thông tin được liên kết với một thông báo nhận được từ nút ngang hàng.

Các lớp học

nl :: Weave :: WeaveMessageLayer :: InitContext

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

Các loại công khai

AcceptErrorFunct

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

Chức năng 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
Thông số
[in] msgLayer
Một con trỏ tới các WeaveMessageLayer đối tượng.
[in] err
WEAVE_ERROR gặp phải khi xử lý kết nối TCP đến.

CallbackRemishedFunct

void(* CallbackRemovedFunct)(void *listenerState)

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

Chi tiết
Thông số
[in] listenerState
Một 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 đến.

Chi tiết
Thông số
[in] msgLayer
Một con trỏ tới các WeaveMessageLayer đối tượng.
[in] con
Một con trỏ tới các WeaveConnection đối tượng.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Chức năng này là ứng dụng gọi lại để 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à hoạt động nếu có ít nhất một trao đổi đang mở hoặc yêu cầu đồng bộ bộ đếm tin nhắn đang chờ xử lý.

Chi tiết
Thông số
[in] messageLayerIsActive
Một giá trị boolean cho biết liệu 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
Thông số
[in] msgLayer
Một con trỏ tới các WeaveMessageLayer đối tượng.
[in] msgInfo
Một con trỏ tới các WeaveMessageInfo đối tượng.
[in] payload
Con trỏ đến bản tin PacketBuffer chứa gói tin đã nhận được đường hầm.

GetErrorFunct

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.

Chi tiết
Thông số
[in] msgLayer
Một con trỏ tới các WeaveMessageLayer đối tượng.
[in] err
WEAVE_ERROR gặp phải khi nhận dữ liệu.
[in] pktInfo
Một con trỏ chỉ đọc đến đối tượng IPPacketInfo.

Tiểu bang

 State

Tình trạng của WeaveMessageLayer .

Tính chất
kState_Initialized

Nhà nước khi WeaveMessageLayer được khởi tạo.

kState_Initializing

Nhà nước khi WeaveMessageLayer là trong quá trình đang được khởi tạo.

kState_NotInitialized

Nhà nước khi WeaveMessageLayer không được khởi tạo.

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

Chi tiết
Thông số
[in] msgLayer
Một con trỏ tới các WeaveMessageLayer đối tượng.
[in] payload
Con trỏ đến bản tin PacketBuffer chứa gói tin đã nhận được đường hầm.

Thuộc tính công cộng

AppState

void * AppState

Một 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] Các liên WeaveExchangeManager đối tượng.

Nhà chế tạo

WeaveFabricState * FabricState

[READ ONLY] Các liên WeaveFabricState đối tượng.

IncomingConIdleTimeout

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 lắng nghe các kết nối / tin nhắn đến, nếu không thì sai.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionRenition

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceive

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceive

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] Các liên WeaveSecurityManager đối tượng.

Tiểu bang

uint8_t State

[READ ONLY] Tình trạng của WeaveMessageLayer đối tượng.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Nội bộ và chỉ để gỡ lỗi; Khi thiết lập, WeaveMessageLayer giọt nhắn và lợi nhuận.

Chức năng công cộng

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 đó hủy bỏ bất kỳ WeaveConnections mở và tắt máy bất kỳ mở WeaveConnectionTunnel đối tượng.

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 kết hợp với nhau hai WeaveConnections quy định.

Trên tạo thành công, TCPEndPoints tương ứng với các thành phần WeaveConnection đối tượng được bàn giao cho WeaveConnectionTunnel , nếu không WeaveConnections are closed.

Chi tiết
Thông số
[out] tunPtr
Một con trỏ đến con trỏ của một WeaveConnectionTunnel đối tượng.
[in] conOne
Một tài liệu tham khảo để là người đầu tiên WeaveConnection đối tượng.
[in] conTwo
Một tham chiếu đến thứ hai WeaveConnection đối tượng.
[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ả lại
WEAVE_NO_ERROR
trên tạo thành công WeaveConnectionTunnel .
WEAVE_ERROR_INCORRECT_STATE
nếu các thành phần WeaveConnection đối tượng của WeaveConnectionTunnel không ở trạng thái chính xác.
WEAVE_ERROR_NO_MEMORY
nếu một mới WeaveConnectionTunnel đối tượng không thể được tạo ra.

DecodeHeader

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

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

Chi tiết
Thông số
[in] msgBuf
Một con trỏ đến đối tượng PacketBuffer đang giữ thông báo Weave.
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng đó sẽ nhận được thông tin về tin nhắn.
[out] payloadStart
Một con trỏ tới một con trỏ đến vị trí trong bộ đệm thư sau khi giải mã xong.
Giá trị trả lại
WEAVE_NO_ERROR
Khi giải mã thành công tiêu đề thư.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Nếu bộ đệ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 đề Thông báo Weave không được hỗ trợ.

EncodeMessage

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

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

Chi tiết
Thông số
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng chứa thông tin về thông điệp được mã hóa.
[in] msgBuf
Một con trỏ đến đối tượng PacketBuffer sẽ giữ thông báo Weave.
[in] con
Một con trỏ tới các WeaveConnection đối tượng.
[in] maxLen
Độ dài tối đa của tin nhắn Weave được mã hóa.
[in] reserve
Không gian dành riêng trước tải trọng để giữ tiêu đề tin nhắn Weave.
Giá trị trả lại
WEAVE_NO_ERROR
mã hóa thành công tin nhắn.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
nếu phiên bản định dạng tiêu đề Thông báo Weave không được hỗ trợ.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
nếu độ dài trọng tải trong bộ đệm thư bằng 0.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
nếu kiểu mã hóa trong tiêu đề thư không được hỗ trợ.
WEAVE_ERROR_MESSAGE_TOO_LONG
nếu tin nhắn được mã hóa sẽ dài hơn mứ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 tin nhắn.
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.

EncodeMessage

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

Mã hóa tiêu đề lớp Thông báo Weave thành Bộ đệm gói.

Chi tiết
Thông số
[in] destAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] sendIntId
Giao diện để gửi tin nhắn Weave.
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng.
[in] payload
Một con trỏ đến đối tượng PacketBuffer sẽ giữ thông báo Weave.
Giá trị trả lại
WEAVE_NO_ERROR
khi mã hóa thành công tin nhắn 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 trọng tải trong bộ đệm thư bằng 0.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
nếu loại mã hóa không được hỗ trợ.
WEAVE_ERROR_MESSAGE_TOO_LONG
nếu tin nhắn được mã hóa sẽ dài hơn mứ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 tin nhắn.
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ác trao đổi UDP Weave được khởi tạo cục bộ có được gửi từ mộ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 hồ bơi.

Chi tiết
Thông 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ấu hình để nghe cho truyền thông trong nước so với IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer được cấu hình để nghe cho truyền thông trong nước so với IPv4.

Trong đó

WEAVE_ERROR Init(
  InitContext *context
)

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

Chi tiết
Thông số
[in] context
Một con trỏ tới các InitContext đối tượng.
Giá trị trả lại
WEAVE_NO_ERROR
khi khởi tạo thành công.
WEAVE_ERROR_INVALID_ARGUMENT
nếu qua InitContext đối tượng là NULL.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái của WeaveMessageLayer đối tượng là không chính xác.
other
lỗi được tạo ra từ lớp Inet thấp hơn trong quá trình tạo điểm cuối.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Kiểm tra xem WeaveMessageLayer được ràng buộc với một địa chỉ IPv4 địa phương.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Kiểm tra xem WeaveMessageLayer được ràng buộc với một địa chỉ IPv6 địa phương.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

Kết nối mới

WeaveConnection * NewConnection(
  void
)

Tạo mới WeaveConnection đối tượng từ một hồ bơi.

Chi tiết
Lợi nhuận
một con trỏ đến vừa được tạo ra WeaveConnection đối tượng nếu thành công, nếu không NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Tạo mới WeaveConnectionTunnel đối tượng từ một hồ bơi.

Chi tiết
Lợi nhuận
một con trỏ đến vừa được tạo ra WeaveConnectionTunnel đối tượng nếu thành công, nếu không 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ả lại
WEAVE_NO_ERROR
khi làm mới thành công các điểm cuối.
InetLayer
lỗi dựa trên các cuộc 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 tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.

Chi tiết
Thông số
[in] msgInfo
Một con trỏ tới các WeaveMessageInfo đối tượng.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình gửi.

Gửi lại tin nhắn

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

Gửi lại tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.

Chi tiết
Thông số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Một con trỏ tới các WeaveMessageInfo đối tượng.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình 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 tin nhắn Weave được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.

Chi tiết
Thông số
[in] destAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] msgInfo
Một con trỏ tới các WeaveMessageInfo đối tượng.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình 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 được mã hóa bằng cách sử dụng điểm cuối Inetlayer UDP bên dưới.

Lưu ý: -Nếu địa chỉ đích chưa được cung cấp, cố gắng để xác định nó từ định danh nút trong tiêu đề thư. Không thành công nếu điều này không thể được thực hiện. -Nếu địa chỉ đích là địa chỉ vải cho cấu trúc cục bộ và người gọi không chỉ định id nút đích, hãy trích xuất nó từ địa chỉ đích.

Chi tiết
Thông số
[in] aDestAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] interfaceId
Giao diện để gửi tin nhắn Weave.
[in] msgInfo
Một con trỏ tới các WeaveMessageInfo đối tượng.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình gửi.

Gửi tin nhắn

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.

Chi tiết
Thông số
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng chứa thông tin về thông điệp được gửi đi.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình gửi.

Gửi tin nhắn

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

Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.

Lưu ý: -Các cổng đích 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 nó từ định danh nút trong tiêu đề thư. Thất bại nếu điều này không thể được thực hiện.

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

Chi tiết
Thông số
[in] destAddr
Địa chỉ IP đích.
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng chứa thông tin về thông điệp được gửi đi.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình gửi.

Gửi tin nhắn

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

Gửi tin nhắn Weave bằng điểm cuối Inetlayer UDP bên dưới sau khi mã hóa nó.

Lưu ý: -Nếu địa chỉ đích chưa được cung cấp, cố gắng để xác định nó từ định danh nút trong tiêu đề thư. Thất bại nếu điều này không thể được thực hiện. -Nếu địa chỉ đích là địa chỉ vải cho cấu trúc cục bộ và người gọi không chỉ định id nút đích, hãy trích xuất nó từ địa chỉ đích.

Chi tiết
Thông số
[in] aDestAddr
Địa chỉ IP đích.
[in] destPort
Cổng đích.
[in] sendIntfId
Giao diện để gửi tin nhắn Weave.
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng chứa thông tin về thông điệp được gửi đi.
[in] payload
Một con trỏ đến đối tượng PacketBuffer chứa thông điệp Weave được mã hóa.
Giá trị trả lại
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 lớp Inet thấp hơn trong quá trình gửi.

SendUDPTunneledMessage

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

Chức năng gửi một gói Tunneled qua một đường hầm UDP cục bộ.

Gửi tin nhắn dữ liệu IPv6 đường hầm qua UDP.

Chi tiết
Thông số
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo đối tượng.
[in] destAddr
Địa chỉ IP của đích đường hầm UDP.
[in] msgBuf
Một con trỏ đến đối tượng PacketBuffer đang giữ gói tin để gửi.
Giá trị trả lại
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 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úc:

  • số lượng các sàn giao dịch đã 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ở lại 0. Trình xử lý được coi là tín hiệu chung cho biết liệu có bất kỳ cuộc hội thoại Weave nào đang diễn ra hoặc phản hồi đang chờ xử lý hay không. Việc xử lý phải được thiết lập sau khi WeaveMessageLayer đã được khởi tạo; tắt WeaveMessageLayer sẽ xóa ra xử lý hiện hành.

Chi tiết
Thông số
[in] messageLayerActivityChangeHandler
Một con 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ả lại
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Bật hoặc nghe vô hiệu hóa cho các kết nối TCP inbound trong WeaveMessageLayer .

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Bật hoặc nghe vô hiệu hóa cho các tin nhắn UDP tới trong WeaveMessageLayer .

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

SetUnsecuredConnectionListener

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

Tắt

WEAVE_ERROR Shutdown(
  void
)

Shutdown WeaveMessageLayer .

Đóng tất cả các điểm cuối lớp Inet đang 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 viên và các đối tượng. Một cuộc gọi đến Shutdown () chấm dứt WeaveMessageLayer đối tượng.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer được cấu hình để lắng nghe cho các kết nối TCP gửi đến.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Kiểm tra xem WeaveMessageLayer được cấu hình để lắng nghe thông điệp UDP tới.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Bật hoặc tắt việc bắt đầu trao đổi Weave UDP từ một cổng nguồn UDP tạm thời.

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Phương thức khởi tạo lớp Thông điệp Weave.

Chức năng tĩnh công khai

GetMaxWeavePayloadSize

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

Nhận kích thước tải trọng Weave tối đa cho cấu hình tin nhắn và PacketBuffer được cung cấp.

Kích thước trọng tải tối đa được trả về sẽ không vượt quá dung lượng khả dụng cho trọng tải bên trong Bộ đệm gói đượ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 sẽ 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 sẽ làm tràn kích thước thông báo Weave tối đa.

Chi tiết
Thông số
[in] msgBuf
Một con trỏ đến PacketBuffer mà trọng tải thông báo sẽ được ghi.
[in] isUDP
Đúng nếu tin nhắn là tin nhắn UDP.
[in] udpMTU
Kích thước của UDP MTU. Bỏ qua nếu isUDP là sai.
Lợi nhuận
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
)

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

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

 ([]:%, con )

Chi tiết
Thông số
[in] buf
Một con trỏ tới bộ đệm mà chuỗi sẽ được ghi vào đó. Bộ đệm được cung cấp ít nhất phải lớn bằng kWeavePeerDescription_MaxLength. Nếu một bộ đệm nhỏ hơn được cung cấp, chuỗi sẽ được cắt bớt để vừa. Đầ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 bộ đệm được trỏ vào bởi buf.
[in] nodeId
Id nút sẽ được in.
[in] addr
Một con trỏ đến địa chỉ IP sẽ được in; hoặc NULL nếu không có địa chỉ IP nào được in.
[in] port
Số cổng IP sẽ được in. Số cổng sẽ không được in nếu addr là NULL.
[in] interfaceId
Một InterfaceId xác định giao diện sẽ được in. Chuỗi đầu ra sẽ chứa tên của giao diện được biết đến với ngăn xếp mạng bên dưới. Sẽ không có tên giao diện nào được in nếu interfaceId là INET_NULL_INTERFACEID hoặc nếu addr là NULL.
[in] con
Một con trỏ tới một WeaveConnection đối tượng có id đăng nhập sẽ được in; hoặc NULL nếu không có id kết nối nào được in.

GetPeerDescription

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

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

Chi tiết
Thông số
[in] buf
Một con trỏ tới bộ đệm mà chuỗi sẽ được ghi vào đó. Bộ đệm được cung cấp ít nhất phải lớn bằng kWeavePeerDescription_MaxLength. Nếu một bộ đệm nhỏ hơn được cung cấp, chuỗi sẽ được cắt bớt để vừa. Đầ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 bộ đệm được trỏ vào bởi buf.
[in] msgInfo
Một con trỏ tới một WeaveMessageInfo cấu trúc chứa thông tin về tin nhắn.