nl::Weave::WeaveMessageLayer

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

คำจำกัดความของคลาส WeaveMessageLayer ซึ่งจัดการการสื่อสารกับโหนด Weave อื่นๆ

สรุป

โดยใช้หนึ่งในปลายทาง InetLayer หลายรายการเพื่อสร้างช่องทางการสื่อสารกับโหนด Weave อื่นๆ

ผู้ผลิตและผู้ทำลาย

WeaveMessageLayer(void)
เครื่องมือสร้างเลเยอร์ Weave Message

ประเภทสาธารณะ

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) Typedef
void(*
ฟังก์ชันนี้เป็น Callback เลเยอร์ที่สูงขึ้นสำหรับการรายงานข้อผิดพลาดระหว่างการจัดการการเชื่อมต่อ TCP ที่เข้ามาใหม่
CallbackRemovedFunct)(void *listenerState) Typedef
void(*
มีการเรียกใช้ฟังก์ชันนี้เพื่อนำ Callback ออก
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) Typedef
void(*
ฟังก์ชันนี้เป็น Callback ของเลเยอร์ที่สูงขึ้นสำหรับการจัดการการเชื่อมต่อ TCP ที่เข้ามาใหม่
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) Typedef
void(*
ฟังก์ชันนี้เป็น Callback ของแอปพลิเคชันสำหรับการรายงานการเปลี่ยนแปลงกิจกรรมเลเยอร์ข้อความ
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) Typedef
void(*
ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงกว่าซึ่งเรียกใช้เมื่อได้รับข้อความ Weave ผ่าน UDP
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) Typedef
void(*
ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงขึ้นซึ่งถูกเรียกใช้เมื่อพบข้อผิดพลาด
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
สถานะของ WeaveMessageLayer
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) Typedef
void(*
ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงกว่าซึ่งเรียกใช้เมื่อได้รับแพ็กเกต Tunneled ผ่านอุโมงค์ UDP ในเครื่อง

แอตทริบิวต์สาธารณะ

AppState
void *
ตัวชี้ไปยังออบเจ็กต์สถานะเฉพาะแอปพลิเคชัน
ExchangeMgr
[READ ONLY] ออบเจ็กต์ WeaveExchangeManager ที่เชื่อมโยง
FabricState
[READ ONLY] ออบเจ็กต์ WeaveFabricState ที่เกี่ยวข้อง
IncomingConIdleTimeout
uint32_t
การหมดเวลาเมื่อไม่มีการใช้งานเริ่มต้น (เป็นมิลลิวินาที) สำหรับการเชื่อมต่อขาเข้า
Inet
InetLayer *
[READ ONLY] ออบเจ็กต์ InetLayer ที่เกี่ยวข้อง
IsListening
bool
[อ่านอย่างเดียว] True หากฟังการเชื่อมต่อ/ข้อความขาเข้า และเป็น false หากรับข้อมูลเป็น "เท็จ"
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] ออบเจ็กต์ WeaveSecurityManager ที่เชื่อมโยง
State
uint8_t
[READ ONLY] สถานะของออบเจ็กต์ WeaveMessageLayer
SystemLayer
mDropMessage
bool
ภายในและสำหรับการแก้ไขข้อบกพร่องเท่านั้น เมื่อตั้งค่าแล้ว WeaveMessageLayer จะส่งข้อความและแสดงผลอีกครั้ง

ฟังก์ชันสาธารณะ

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
ปิดปลายทาง TCP และ UDP ที่เปิดอยู่ทั้งหมด
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
สร้าง WeaveConnectionTunnel โดยเชื่อมโยง WeaveConnections ที่ระบุ 2 รายการเข้าด้วยกัน
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
ถอดรหัสส่วนหัวของเลเยอร์ข้อความ Weave จากข้อความ Weave ที่ได้รับ
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
เข้ารหัสส่วนหัว WeaveMessageLayer ลงใน PacketBuffer
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
เข้ารหัสส่วนหัวของเลเยอร์ Weave Message ลงใน PacketBuffer
EphemeralUDPPortEnabled(void) const
bool
ตรวจสอบว่าควรส่งการแลกเปลี่ยน Weave UDP ที่เริ่มต้นในท้องถิ่นจากพอร์ตแหล่งที่มา UDP ชั่วคราวหรือไม่
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
ดูจำนวน WeaveConnections ที่ใช้งานและขนาดของพูล
IPv4ListenEnabled(void) const
bool
ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการสื่อสารขาเข้าผ่าน IPv4 หรือไม่
IPv6ListenEnabled(void) const
bool
ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการสื่อสารขาเข้าผ่าน IPv4 หรือไม่
Init(InitContext *context)
เริ่มต้นออบเจ็กต์เลเยอร์ Weave Message
IsBoundToLocalIPv4Address(void) const
bool
ตรวจสอบว่า WeaveMessageLayer เชื่อมโยงกับที่อยู่ IPv4 ในเครื่องหรือไม่
IsBoundToLocalIPv6Address(void) const
bool
ตรวจสอบว่า WeaveMessageLayer เชื่อมโยงกับที่อยู่ IPv6 ในเครื่องหรือไม่
IsMessageLayerActive(void)
bool
NewConnection(void)
สร้างออบเจ็กต์ WeaveConnection ใหม่จากพูล
NewConnectionTunnel(void)
สร้างออบเจ็กต์ WeaveConnectionTunnel ใหม่จากพูล
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
รีเฟรชปลายทาง InetLayer ตามสถานะปัจจุบันของอินเทอร์เฟซเครือข่ายของระบบ
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ฟังก์ชันเพื่อส่งแพ็กเกต Tunneled ผ่านอุโมงค์ UDP ในเครื่อง
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
ตั้งค่าเครื่องจัดการแอปพลิเคชันที่จะเรียกใช้ทุกครั้งที่กิจกรรมของเลเยอร์ข้อความมีการเปลี่ยนแปลง
SetTCPListenEnabled(bool val)
void
เปิดหรือปิดใช้การฟังการเชื่อมต่อ TCP ขาเข้าใน WeaveMessageLayer
SetUDPListenEnabled(bool val)
void
เปิดหรือปิดใช้การฟังข้อความ UDP ขาเข้าใน WeaveMessageLayer
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการเชื่อมต่อ TCP ขาเข้าหรือไม่
UDPListenEnabled(void) const
bool
ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับข้อความ UDP ขาเข้าหรือไม่
UnsecuredListenEnabled(void) const
bool
เปิดหรือปิดใช้การเริ่มการแลกเปลี่ยน Weave UDP จากพอร์ตต้นทาง UDP ชั่วคราว

ฟังก์ชันสาธารณะแบบคงที่

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
รับขนาดเพย์โหลด Weave สูงสุดสำหรับการกำหนดค่าข้อความและ PacketBuffer ที่ระบุ
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
สร้างสตริงที่อธิบายโหนดเพียร์และข้อมูลการเชื่อมต่อที่อยู่ / การเชื่อมต่อที่เกี่ยวข้อง
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
สร้างสตริงที่อธิบายโหนดเพียร์ตามข้อมูลที่เชื่อมโยงกับข้อความที่ได้รับจากเพียร์

ชั้นเรียน

nl::Weave::WeaveMessageLayer::InitContext

คำจำกัดความของคลาส InitContext

ประเภทสาธารณะ

AcceptErrorFunct

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

ฟังก์ชันนี้เป็น Callback เลเยอร์ที่สูงขึ้นสำหรับการรายงานข้อผิดพลาดระหว่างการจัดการการเชื่อมต่อ TCP ที่เข้ามาใหม่

รายละเอียด
พารามิเตอร์
[in] msgLayer
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageLayer
[in] err
WEAVE_ERROR ที่พบเมื่อจัดการการเชื่อมต่อ TCP ขาเข้า

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

มีการเรียกใช้ฟังก์ชันนี้เพื่อนำ Callback ออก

รายละเอียด
พารามิเตอร์
[in] listenerState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปพลิเคชัน

ConnectionReceiveFunct

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

ฟังก์ชันนี้เป็น Callback ของเลเยอร์ที่สูงขึ้นสำหรับการจัดการการเชื่อมต่อ TCP ที่เข้ามาใหม่

รายละเอียด
พารามิเตอร์
[in] msgLayer
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageLayer
[in] con
ตัวชี้ไปยังออบเจ็กต์ WeaveConnection

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

ฟังก์ชันนี้เป็น Callback ของแอปพลิเคชันสำหรับการรายงานการเปลี่ยนแปลงกิจกรรมเลเยอร์ข้อความ

ระบบจะถือว่าเลเยอร์ข้อความทำงานอยู่หากมีคำขอซิงค์ข้อมูลโต้แย้งข้อความที่รอดำเนินการอย่างน้อย 1 รายการหรือ Open Exchange

รายละเอียด
พารามิเตอร์
[in] messageLayerIsActive
ค่าบูลีนที่ระบุว่าเลเยอร์ข้อความทำงานอยู่หรือไม่

MessageReceiveFunct

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

ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงกว่าซึ่งเรียกใช้เมื่อได้รับข้อความ Weave ผ่าน UDP

รายละเอียด
พารามิเตอร์
[in] msgLayer
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageLayer
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังข้อความ PacketBuffer ที่ได้รับแพ็กเก็ต Tunnel

ReceiveErrorFunct

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

ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงขึ้นซึ่งถูกเรียกใช้เมื่อพบข้อผิดพลาด

รายละเอียด
พารามิเตอร์
[in] msgLayer
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageLayer
[in] err
WEAVE_ERROR ที่พบเมื่อรับข้อมูล
[in] pktInfo
ตัวชี้แบบอ่านอย่างเดียวไปยังออบเจ็กต์ IPPacketInfo

รัฐ

 State

สถานะของ WeaveMessageLayer

พร็อพเพอร์ตี้
kState_Initialized

ระบุเมื่อ WeaveMessageLayer เริ่มต้น

kState_Initializing

ระบุเมื่อ WeaveMessageLayer อยู่ระหว่างการเริ่มต้น

kState_NotInitialized

ระบุเมื่อยังไม่ได้เริ่มต้น WeaveMessageLayer

TunneledMsgReceiveFunct

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

ฟังก์ชันนี้คือ Callback ของเลเยอร์ที่สูงกว่าซึ่งเรียกใช้เมื่อได้รับแพ็กเกต Tunneled ผ่านอุโมงค์ UDP ในเครื่อง

รายละเอียด
พารามิเตอร์
[in] msgLayer
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageLayer
[in] payload
ตัวชี้ไปยังข้อความ PacketBuffer ที่ได้รับแพ็กเก็ต Tunnel

แอตทริบิวต์สาธารณะ

AppState

void * AppState

ตัวชี้ไปยังออบเจ็กต์สถานะเฉพาะแอปพลิเคชัน

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] ออบเจ็กต์ WeaveExchangeManager ที่เชื่อมโยง

FabricState

WeaveFabricState * FabricState

[READ ONLY] ออบเจ็กต์ WeaveFabricState ที่เกี่ยวข้อง

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

ระยะหมดเวลาเมื่อไม่มีการใช้งานเริ่มต้น (เป็นมิลลิวินาที) สำหรับการเชื่อมต่อขาเข้า

Inet

InetLayer * Inet

[READ ONLY] ออบเจ็กต์ InetLayer ที่เกี่ยวข้อง

IsListening

bool IsListening

[อ่านอย่างเดียว] True หากฟังการเชื่อมต่อ/ข้อความขาเข้า และเป็น false หากรับข้อมูลเป็น "เท็จ"

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[READ ONLY] ออบเจ็กต์ WeaveSecurityManager ที่เชื่อมโยง

รัฐ

uint8_t State

[READ ONLY] สถานะของออบเจ็กต์ WeaveMessageLayer

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

ภายในและสำหรับการแก้ไขข้อบกพร่องเท่านั้น เมื่อตั้งค่าแล้ว WeaveMessageLayer จะส่งข้อความและแสดงผลอีกครั้ง

ฟังก์ชันสาธารณะ

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

ปิดปลายทาง TCP และ UDP ที่เปิดอยู่ทั้งหมด

จากนั้นล้มเลิก WeaveConnections ใดๆ ที่เปิดไว้ และปิดออบเจ็กต์ WeaveConnectionTunnel ทั้งหมดที่เปิดอยู่

ดูเพิ่มเติมที่
Shutdown()

CreateTunnel

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

สร้าง WeaveConnectionTunnel โดยเชื่อมโยง WeaveConnections ที่ระบุ 2 รายการเข้าด้วยกัน

เมื่อสร้างเสร็จสมบูรณ์ TCPEndPoints ที่สอดคล้องกับออบเจ็กต์ WeaveConnection จะส่งผ่านไปยัง WeaveConnectionTunnel มิฉะนั้น WeaveConnections จะปิด

รายละเอียด
พารามิเตอร์
[out] tunPtr
ตัวชี้ไปยังตัวชี้ของออบเจ็กต์ WeaveConnectionTunnel
[in] conOne
การอ้างอิงออบเจ็กต์ WeaveConnection แรก
[in] conTwo
การอ้างอิงออบเจ็กต์ WeaveConnection รายการที่ 2
[in] inactivityTimeoutMS
เวลาสูงสุดเป็นมิลลิวินาทีที่อุโมงค์การเชื่อมต่อ Weave อาจไม่มีการใช้งาน
ผลลัพธ์
WEAVE_NO_ERROR
ในการสร้าง WeaveConnectionTunnel ที่สำเร็จ
WEAVE_ERROR_INCORRECT_STATE
หากออบเจ็กต์ WeaveConnection ของคอมโพเนนต์ WeaveConnectionTunnel ไม่อยู่ในสถานะที่ถูกต้อง
WEAVE_ERROR_NO_MEMORY
หากสร้างออบเจ็กต์ WeaveConnectionTunnel ใหม่ไม่ได้

DecodeHeader

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

ถอดรหัสส่วนหัวของเลเยอร์ข้อความ Weave จากข้อความ Weave ที่ได้รับ

รายละเอียด
พารามิเตอร์
[in] msgBuf
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo ซึ่งจะรับข้อมูลเกี่ยวกับข้อความ
[out] payloadStart
ตัวชี้ไปยังตัวชี้ไปยังตำแหน่งในบัฟเฟอร์ข้อความหลังจากที่ถอดรหัสเสร็จแล้ว
ผลลัพธ์
WEAVE_NO_ERROR
เมื่อถอดรหัสส่วนหัวของข้อความสำเร็จ
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
หากบัฟเฟอร์ข้อความที่ส่งผ่านมีความยาวที่ไม่ถูกต้อง
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
หากระบบไม่รองรับเวอร์ชันรูปแบบส่วนหัวของข้อความ Weave

EncodeMessage

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

เข้ารหัสส่วนหัว WeaveMessageLayer ลงใน PacketBuffer

รายละเอียด
พารามิเตอร์
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo ที่มีข้อมูลเกี่ยวกับข้อความที่จะเข้ารหัส
[in] msgBuf
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่จะใส่ข้อความ Weave
[in] con
ตัวชี้ไปยังออบเจ็กต์ WeaveConnection
[in] maxLen
ความยาวสูงสุดของข้อความ Weave ที่เข้ารหัส
[in] reserve
พื้นที่ที่สงวนไว้ก่อนเพย์โหลดเพื่อเก็บส่วนหัวของข้อความ Weave
ผลลัพธ์
WEAVE_NO_ERROR
การเข้ารหัสข้อความสำเร็จ
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
หากระบบไม่รองรับเวอร์ชันรูปแบบส่วนหัวของข้อความ Weave
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
หากความยาวเพย์โหลดในบัฟเฟอร์ข้อความเป็น 0
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
หากไม่รองรับประเภทการเข้ารหัสในส่วนหัวของข้อความ
WEAVE_ERROR_MESSAGE_TOO_LONG
หากข้อความที่เข้ารหัสจะยาวกว่าขีดจำกัดที่ขอ
WEAVE_ERROR_BUFFER_TOO_SMALL
หากมีพื้นที่ไม่เพียงพอก่อนหรือหลังเพย์โหลดข้อความ
other
ข้อผิดพลาดที่สร้างโดยออบเจ็กต์สถานะ Fabric เมื่อดึงข้อมูลสถานะเซสชัน

EncodeMessage

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

เข้ารหัสส่วนหัวของเลเยอร์ Weave Message ลงใน PacketBuffer

รายละเอียด
พารามิเตอร์
[in] destAddr
ที่อยู่ IP ปลายทาง
[in] destPort
พอร์ตปลายทาง
[in] sendIntId
อินเทอร์เฟซที่จะใช้ส่งข้อความ Weave
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่จะใส่ข้อความ Weave
ผลลัพธ์
WEAVE_NO_ERROR
การเข้ารหัสข้อความ Weave ที่สำเร็จ
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
หากไม่สนับสนุนเวอร์ชัน Weave Message
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
หากความยาวเพย์โหลดในบัฟเฟอร์ข้อความเป็น 0
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
หากไม่รองรับประเภทการเข้ารหัสนี้
WEAVE_ERROR_MESSAGE_TOO_LONG
หากข้อความที่เข้ารหัสจะยาวกว่าขีดจำกัดที่ขอ
WEAVE_ERROR_BUFFER_TOO_SMALL
หากมีพื้นที่ไม่เพียงพอก่อนหรือหลังเพย์โหลดข้อความ
other
ข้อผิดพลาดที่สร้างโดยออบเจ็กต์สถานะ Fabric เมื่อดึงข้อมูลสถานะเซสชัน

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

ตรวจสอบว่าควรส่งการแลกเปลี่ยน Weave UDP ที่เริ่มต้นในท้องถิ่นจากพอร์ตแหล่งที่มา UDP ชั่วคราวหรือไม่

GetConnectionPoolStats

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

ดูจำนวน WeaveConnections ที่ใช้งานและขนาดของพูล

รายละเอียด
พารามิเตอร์
[out] aOutInUse
อ้างอิงถึง size_t ซึ่งจัดเก็บจำนวนการเชื่อมต่อที่ใช้งานอยู่

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการสื่อสารขาเข้าผ่าน IPv4 หรือไม่

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการสื่อสารขาเข้าผ่าน IPv4 หรือไม่

Init

WEAVE_ERROR Init(
  InitContext *context
)

เริ่มต้นออบเจ็กต์เลเยอร์ Weave Message

รายละเอียด
พารามิเตอร์
[in] context
ตัวชี้ไปยังออบเจ็กต์ InitContext
ผลลัพธ์
WEAVE_NO_ERROR
ในการเริ่มต้นอย่างสมบูรณ์
WEAVE_ERROR_INVALID_ARGUMENT
หากออบเจ็กต์ InitContext ที่ส่งผ่านเป็นค่า NULL
WEAVE_ERROR_INCORRECT_STATE
หากสถานะของออบเจ็กต์ WeaveMessageLayer ไม่ถูกต้อง
other
ที่สร้างขึ้นจากเลเยอร์ Inet ล่างระหว่างการสร้างปลายทาง

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

ตรวจสอบว่า WeaveMessageLayer เชื่อมโยงกับที่อยู่ IPv4 ในเครื่องหรือไม่

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

ตรวจสอบว่า WeaveMessageLayer เชื่อมโยงกับที่อยู่ IPv6 ในเครื่องหรือไม่

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

สร้างออบเจ็กต์ WeaveConnection ใหม่จากพูล

รายละเอียด
การคืนสินค้า
ตัวชี้ไปยังออบเจ็กต์ WeaveConnection ที่สร้างขึ้นใหม่ หากสำเร็จ มิฉะนั้นจะเป็น NULL

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

สร้างออบเจ็กต์ WeaveConnectionTunnel ใหม่จากพูล

รายละเอียด
การคืนสินค้า
ตัวชี้ไปยังออบเจ็กต์ WeaveConnectionTunnel ที่สร้างขึ้นใหม่ หากสำเร็จ มิฉะนั้นจะเป็น NULL

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

รีเฟรชปลายทาง InetLayer ตามสถานะปัจจุบันของอินเทอร์เฟซเครือข่ายของระบบ

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
ในการรีเฟรชปลายทางที่สำเร็จ
InetLayer
ตามการเรียกเพื่อสร้างปลายทาง TCP/UDP

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง

รายละเอียด
พารามิเตอร์
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

ResendMessage

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

ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง

รายละเอียด
พารามิเตอร์
[in] destAddr
ที่อยู่ IP ปลายทาง
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

ResendMessage

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

ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง

รายละเอียด
พารามิเตอร์
[in] destAddr
ที่อยู่ IP ปลายทาง
[in] destPort
พอร์ตปลายทาง
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

ResendMessage

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

ส่งข้อความ Weave ที่เข้ารหัสอีกครั้งโดยใช้ปลายทาง UDP ของ Inetlayer ที่เกี่ยวข้อง

หมายเหตุ: - หากไม่ได้ระบุที่อยู่ปลายทาง ให้พยายามระบุที่อยู่จากตัวระบุโหนดในส่วนหัวของข้อความ ล้มเหลวหากการดำเนินการนี้ไม่สามารถทำได้ -หากที่อยู่ปลายทางเป็นที่อยู่ผ้าสำหรับ Fabric และผู้โทรไม่ได้ระบุรหัสโหนดปลายทาง ให้ดึงข้อมูลจากที่อยู่ปลายทาง

รายละเอียด
พารามิเตอร์
[in] aDestAddr
ที่อยู่ IP ปลายทาง
[in] destPort
พอร์ตปลายทาง
[in] interfaceId
อินเทอร์เฟซที่จะใช้ส่งข้อความ Weave
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส

รายละเอียด
พารามิเตอร์
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo ที่มีข้อมูลเกี่ยวกับข้อความที่จะส่ง
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

SendMessage

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

ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส

หมายเหตุ: - พอร์ตปลายทางที่ใช้คือ WEAVE_PORT - หากไม่มีการระบุที่อยู่ปลายทาง ให้พยายามค้นหาจากตัวระบุโหนดในส่วนหัวของข้อความ ล้มเหลวหากการดำเนินการนี้ไม่สามารถทำได้

-หากที่อยู่ปลายทางเป็นที่อยู่ผ้าสำหรับ Fabric และผู้โทรไม่ได้ระบุรหัสโหนดปลายทาง ให้ดึงข้อมูลจากที่อยู่ปลายทาง

รายละเอียด
พารามิเตอร์
[in] destAddr
ที่อยู่ IP ปลายทาง
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo ที่มีข้อมูลเกี่ยวกับข้อความที่จะส่ง
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

SendMessage

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

ส่งข้อความ Weave โดยใช้ปลายทาง UDP ของ Inetlayer ที่สำคัญหลังจากการเข้ารหัส

หมายเหตุ: - หากไม่ได้ระบุที่อยู่ปลายทาง ให้พยายามระบุที่อยู่จากตัวระบุโหนดในส่วนหัวของข้อความ ล้มเหลวหากการดำเนินการนี้ไม่สามารถทำได้ -หากที่อยู่ปลายทางเป็นที่อยู่ผ้าสำหรับ Fabric และผู้โทรไม่ได้ระบุรหัสโหนดปลายทาง ให้ดึงข้อมูลจากที่อยู่ปลายทาง

รายละเอียด
พารามิเตอร์
[in] aDestAddr
ที่อยู่ IP ปลายทาง
[in] destPort
พอร์ตปลายทาง
[in] sendIntfId
อินเทอร์เฟซที่จะใช้ส่งข้อความ Weave
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo ที่มีข้อมูลเกี่ยวกับข้อความที่จะส่ง
[in] payload
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีข้อความ Weave ที่เข้ารหัส
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
WEAVE_ERROR_INVALID_ADDRESS
หากไม่ได้ระบุ destAddr หรือไม่สามารถระบุจากรหัสโหนดปลายทาง
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

SendUDPTunneledMessage

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

ฟังก์ชันเพื่อส่งแพ็กเกต Tunneled ผ่านอุโมงค์ UDP ในเครื่อง

ส่งข้อความข้อมูล IPv6 ที่อุโมงค์ข้อมูลผ่าน UDP

รายละเอียด
พารามิเตอร์
[in] msgInfo
ตัวชี้ไปยังออบเจ็กต์ WeaveMessageInfo
[in] destAddr
IPAddress ของปลายทางอุโมงค์ข้อมูล UDP
[in] msgBuf
ตัวชี้ไปยังออบเจ็กต์ PacketBuffer ที่มีแพ็กเก็ตที่จะส่ง
ผลลัพธ์
WEAVE_NO_ERROR
การส่งข้อความถึงเลเยอร์เครือข่ายสำเร็จ
WEAVE_ERROR_INVALID_ADDRESS
หากไม่ได้ระบุ destAddr หรือไม่สามารถระบุจากรหัสโหนดปลายทาง
errors
ที่สร้างขึ้นจากปลายทาง UDP ของเลเยอร์ Inet ระดับล่างในระหว่างการส่ง

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

ตั้งค่าเครื่องจัดการแอปพลิเคชันที่จะเรียกใช้ทุกครั้งที่กิจกรรมของเลเยอร์ข้อความมีการเปลี่ยนแปลง

โดยเฉพาะอย่างยิ่ง แอปพลิเคชันจะได้รับการแจ้งเตือนทุกครั้ง:

  • จำนวนการเปลี่ยนแปลงของ Open Exchange
  • จำนวนคำขอซิงค์ข้อมูลตัวนับข้อความที่รอดำเนินการเปลี่ยนจาก 0 เป็น 1 เป็นอย่างน้อย และกลับไปเป็น 0 ตัวแฮนเดิลทำหน้าที่เป็นสัญญาณทั่วไปที่ระบุว่ามีการสนทนาของ Weave ที่กำลังดำเนินอยู่หรือการตอบกลับที่รอดำเนินการหรือไม่ ต้องตั้งค่าเครื่องจัดการหลังจากเริ่มต้น WeaveMessageLayer แล้ว การปิด WeaveMessageLayer จะเป็นการล้างเครื่องจัดการปัจจุบัน

รายละเอียด
พารามิเตอร์
[in] messageLayerActivityChangeHandler
ตัวชี้ไปยังฟังก์ชันที่จะเรียกใช้เมื่อกิจกรรมของเลเยอร์ข้อความมีการเปลี่ยนแปลง
ผลลัพธ์
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

เปิดหรือปิดใช้การฟังการเชื่อมต่อ TCP ขาเข้าใน WeaveMessageLayer

หมายเหตุ: ต้องเรียก RefreshEndpoints() หลังจากเปลี่ยนสถานะการฟัง TCP

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

เปิดหรือปิดใช้การฟังข้อความ UDP ขาเข้าใน WeaveMessageLayer

หมายเหตุ: ต้องเรียก RefreshEndpoints() หลังจากเปลี่ยนสถานะการฟัง UDP

SetUnsecuredConnectionListener

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

ปิดการทำงาน

WEAVE_ERROR Shutdown(
  void
)

ปิด WeaveMessageLayer

ปิดปลายทางของเลเยอร์ Inet ที่เปิดอยู่ทั้งหมด รีเซ็ต Callback ของเลเยอร์ที่สูงกว่า ตัวแปรสมาชิก และออบเจ็กต์ทั้งหมด การเรียก Shutdown() จะสิ้นสุดออบเจ็กต์ WeaveMessageLayer

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับการเชื่อมต่อ TCP ขาเข้าหรือไม่

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

ตรวจสอบว่าได้กำหนดค่า WeaveMessageLayer ให้รับข้อความ UDP ขาเข้าหรือไม่

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

เปิดหรือปิดใช้การเริ่มการแลกเปลี่ยน Weave UDP จากพอร์ตต้นทาง UDP ชั่วคราว

หมายเหตุ: ต้องเรียกใช้ RefreshEndpoints() หลังจากเปลี่ยนสถานะพอร์ตชั่วคราวแล้ว ตรวจสอบว่าเปิดใช้การฟังที่ไม่ปลอดภัยอยู่หรือไม่

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

เครื่องมือสร้างเลเยอร์ Weave Message

ฟังก์ชันสาธารณะแบบคงที่

GetMaxWeavePayloadSize

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

รับขนาดเพย์โหลด Weave สูงสุดสำหรับการกำหนดค่าข้อความและ PacketBuffer ที่ระบุ

ขนาดเพย์โหลดสูงสุดที่แสดงผลจะไม่เกินพื้นที่ว่างสำหรับเพย์โหลดภายใน PacketBuffer ที่ระบุ

หากข้อความคือ UDP ขนาดเพย์โหลดสูงสุดที่แสดงผลได้จะไม่ส่งผลให้เกิดข้อความ Weave ที่จะไม่ทำให้ล้น UDP MTU ที่ระบุ

สุดท้าย ขนาดเพย์โหลดสูงสุดที่แสดงผลจะไม่ส่งผลให้เกิดข้อความ Weave ที่เกินขนาดข้อความ Weave สูงสุด

รายละเอียด
พารามิเตอร์
[in] msgBuf
ตัวชี้ไปยัง PacketBuffer ที่ระบบจะเขียนเพย์โหลดข้อความ
[in] isUDP
เป็นจริงถ้าข้อความนั้นเป็นข้อความ UDP
[in] udpMTU
ขนาดของ UDP MTU จะไม่สนใจหาก isUDP เป็นเท็จ
การคืนสินค้า
ขนาดเพย์โหลด Weave สูงสุด

GetPeerDescription

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

สร้างสตริงที่อธิบายโหนดเพียร์และข้อมูลการเชื่อมต่อที่อยู่ / การเชื่อมต่อที่เกี่ยวข้อง

สตริงที่สร้างขึ้นจะอยู่ในรูปแบบต่อไปนี้

 ([]:%, con )

รายละเอียด
พารามิเตอร์
[in] buf
ตัวชี้ไปยังบัฟเฟอร์ที่ควรจะเขียนสตริง บัฟเฟอร์ที่ระบุควรมีขนาดใหญ่อย่างน้อยเท่ากับ kWeavePeerDescription_MaxLength หากใส่บัฟเฟอร์ที่เล็กกว่า ระบบจะตัดสตริงให้พอดี ผลลัพธ์จะมีอักขระสิ้นสุด NUL ในทุกกรณี
[in] bufSize
ขนาดของบัฟเฟอร์ที่ buf ชี้ไป
[in] nodeId
รหัสโหนดที่จะพิมพ์
[in] addr
ตัวชี้ไปยังที่อยู่ IP ที่จะพิมพ์ หรือ NULL หากไม่มีที่อยู่ IP ควรพิมพ์
[in] port
หมายเลขพอร์ต IP ที่จะพิมพ์ จะไม่มีการพิมพ์หมายเลขพอร์ตหาก Addr มีค่าเป็น NULL
[in] interfaceId
InterfaceId ที่ระบุอินเทอร์เฟซที่จะพิมพ์ สตริงเอาต์พุตจะมีชื่อของอินเทอร์เฟซที่รู้จักกันในสแต็กเครือข่ายที่ใช้งานอยู่ จะไม่มีการพิมพ์ชื่ออินเทอร์เฟซหาก InterfaceId เป็น INET_NULL_INTERFACEID หรือ Addr เป็นค่า NULL
[in] con
ตัวชี้ไปยังออบเจ็กต์ WeaveConnection ที่ควรพิมพ์รหัสการบันทึก หรือ NULL หากไม่มีรหัสการเชื่อมต่อ

GetPeerDescription

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

สร้างสตริงที่อธิบายโหนดเพียร์ตามข้อมูลที่เชื่อมโยงกับข้อความที่ได้รับจากเพียร์

รายละเอียด
พารามิเตอร์
[in] buf
ตัวชี้ไปยังบัฟเฟอร์ที่ควรจะเขียนสตริง บัฟเฟอร์ที่ระบุควรมีขนาดใหญ่อย่างน้อยเท่ากับ kWeavePeerDescription_MaxLength หากใส่บัฟเฟอร์ที่เล็กกว่า ระบบจะตัดสตริงให้พอดี ผลลัพธ์จะมีอักขระสิ้นสุด NUL ในทุกกรณี
[in] bufSize
ขนาดของบัฟเฟอร์ที่ buf ชี้ไป
[in] msgInfo
ตัวชี้ไปยังโครงสร้าง WeaveMessageInfo ที่มีข้อมูลเกี่ยวกับข้อความ