nl::Weave::Binding

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

บันทึกเป้าหมายที่ต้องการของการสื่อสารของ Weave และข้อมูลการกำหนดค่าที่เกี่ยวข้อง

สรุป

ออบเจ็กต์ การเชื่อมโยง จะระบุเป้าหมายที่มุ่งหวังของการสื่อสารของ Weave (หรือที่เรียกว่า "เพียร์") พร้อมกับชุดพารามิเตอร์การกำหนดค่าที่อธิบายวิธีการสื่อสารกับเพียร์ การเชื่อมโยงจะไม่ขึ้นอยู่กับโปรโตคอลของแอปพลิเคชันที่ทั้ง 2 ฝ่ายพูด ดังนั้น พวกเขาจะจับข้อมูล "ใคร" และ "วิธีการ" ของการสื่อสาร แต่ไม่บอกถึง "อะไร"

การกำหนดค่า

แอปพลิเคชันต้องกำหนดค่าการเชื่อมโยงด้วยพารามิเตอร์ที่เจาะจงกับประเภทช่องทางการสื่อสารที่ต้องการ การเชื่อมโยงรองรับการรับส่งข้อมูลเครือข่ายที่หลากหลาย ทั้ง TCP, UDP, UDP ที่มาพร้อม Weave Reliable Messaging และ Weave over BLE (WoBLE) แอปพลิเคชันยังสามารถขอใช้กลไกการรักษาความปลอดภัยที่เฉพาะเจาะจงเพื่อปกป้องข้อความที่ส่งระหว่างฝ่ายต่างๆ ได้ด้วย ซึ่งประกอบด้วยเซสชัน CASE และ PASE และคีย์กลุ่มแอปพลิเคชัน อินเทอร์เฟซสำหรับการกำหนดค่าการเชื่อมโยงใช้รูปแบบ API แบบประกาศ ซึ่งช่วยให้แอปพลิเคชันระบุข้อกำหนดสำหรับการสื่อสารด้วยคำง่ายๆ

โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับ Binding::Configuration

การเตรียมพร้อม

ก่อนมีการสื่อสาร คุณต้อง "เตรียมการ" การเชื่อมโยง การเตรียมการผูกจะเกี่ยวข้องกับการกำหนดสถานะที่จำเป็นต่อการสื่อสาร ซึ่งอาจรวมถึงการแก้ไขที่อยู่เครือข่ายของเพียร์ การสร้างการเชื่อมต่อเครือข่าย และการเจรจาเกี่ยวกับคีย์ความปลอดภัย เมื่อแอปพลิเคชันกำหนดค่าแล้ว การเชื่อมโยง จะดูแลขั้นตอนทั้งหมดที่จำเป็นในการเตรียมพร้อมสำหรับการสื่อสาร โดยจะโทรกลับไปยังแอปพลิเคชันเมื่อกระบวนการเสร็จสมบูรณ์ ด้วยวิธีนี้ การผูกจะซ่อนกลไกการสื่อสารที่ทำให้แอปพลิเคชันจดจ่อกับการโต้ตอบในระดับสูง

การสื่อสาร

เมื่อเตรียม การเชื่อมโยง เรียบร้อยแล้ว ก็จะพร้อมใช้งาน ในสถานะนี้ แอปพลิเคชัน (หรือโดยทั่วไปคือโค้ดเลเยอร์โปรโตคอลที่ทำงานในนามของแอปพลิเคชัน) จะขอการเชื่อมโยงเพื่อจัดสรรบริบทของการซื้อขาย Weave บริบทของการแลกเปลี่ยนผลลัพธ์จะมีการกำหนดค่าไว้ล่วงหน้าสำหรับการสื่อสาร ซึ่งทำให้แอปพลิเคชันเริ่มต้นการแลกเปลี่ยน Weave กับแอปเทียบเท่าได้ทันที แอปพลิเคชันยังคงขอบริบทการแลกเปลี่ยนจากการเชื่อมโยงต่อไปได้จนกว่าการเชื่อมโยงจะปิดลง หรือบางเหตุการณ์ เช่น เครือข่ายล้มเหลว จะสิ้นสุดช่องทางการสื่อสารที่ใช้งานอยู่

การเปลี่ยนแปลงสถานะการเชื่อมโยง

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

ระบบจะส่งเหตุการณ์ API ไปยังแอปพลิเคชันผ่านฟังก์ชันเรียกกลับของเหตุการณ์ที่ให้ไว้เมื่อมีการจัดสรร การเชื่อมโยง

การเชื่อมโยงตลอดอายุการใช้งาน

การเชื่อมโยงจะนับการอ้างอิงเพื่อให้ใช้งานได้ในองค์ประกอบของซอฟต์แวร์หลายรายการ เมื่อจัดสรรการเชื่อมโยง ระบบจะสร้างการอ้างอิงไปยังการเชื่อมโยง 1 รายการ แอปพลิเคชันมีหน้าที่รับผิดชอบในการเผยแพร่ข้อมูลอ้างอิงนี้ในอนาคตเพื่อให้สามารถใช้การเชื่อมโยงซ้ำได้ฟรีในภายหลัง

เมื่อแอปพลิเคชันใช้งานการเชื่อมโยงเสร็จแล้ว อาจเรียก Close() ในการเชื่อมโยง การดำเนินการนี้จะปล่อยการอ้างอิงของแอปพลิเคชันไปยังการเชื่อมโยง และบล็อกการส่งเหตุการณ์ API เพิ่มเติมทั้งหมด เมื่อมีการปล่อยการอ้างอิงสุดท้ายไปยังการเชื่อมโยง ระบบจะปิดการอ้างอิงนั้นโดยอัตโนมัติ

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

@23{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
EventType{
  kEvent_ConnectionEstablished = 1,
  kEvent_BindingReady = 2,
  kEvent_PrepareFailed = 3,
  kEvent_BindingFailed = 4,
  kEvent_PrepareRequested = 5,
  kEvent_PASEParametersRequested = 6,
  kEvent_TAKEParametersRequested = 7,
  kEvent_DefaultCheck = 100
}
enum
State enum

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

AppState
void *

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

AddRef(void)
void
สำรองการอ้างอิงไปยังออบเจ็กต์การเชื่อมโยง
AdjustResponseTimeout(ExchangeContext *apExchangeContext) const
กำหนดค่าบริบท Exchange ที่มีอยู่อีกครั้งเพื่อปรับระยะหมดเวลาการตอบกลับ
AllocateRightSizedBuffer(PacketBuffer *& buf, const uint32_t desiredSize, const uint32_t minSize, uint32_t & outMaxPayloadSize)
BeginConfiguration()
กระบวนการกำหนดค่าการเชื่อมโยง
CanBePrepared(void) const
bool
Close(void)
void
ปิดออบเจ็กต์การเชื่อมโยงแล้วปล่อยการอ้างอิง
GetConnection() const
รับออบเจ็กต์การเชื่อมต่อ Weave ที่เชื่อมโยงกับการเชื่อมโยง
GetDefaultResponseTimeout() const
uint32_t
รับระยะหมดเวลาการตอบกลับเริ่มต้นของ Exchange ที่จะใช้เมื่อสื่อสารกับเพียร์
GetDefaultWRMPConfig(void) const
const WRMPConfig &
รับการกำหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับเพียร์
GetEncryptionType(void) const
uint8_t
เรียกข้อมูลประเภทการเข้ารหัสข้อความที่จะใช้เมื่อเข้ารหัสข้อความไปยัง/จากเพียร์
GetEventCallback() const
EventCallback
รับฟังก์ชันที่จะเรียกใช้เมื่อเกิดเหตุการณ์ API สำหรับการเชื่อมโยง
GetExchangeManager() const
GetKeyId(void) const
uint32_t
เรียกดูรหัสของคีย์การเข้ารหัสข้อความที่จะใช้เมื่อเข้ารหัสข้อความไปยัง/จากไปยังเพียร์
GetLogId(void) const
uint16_t
รับรหัสที่ไม่ซ้ำกันสำหรับการเชื่อมโยง
GetMaxWeavePayloadSize(const System::PacketBuffer *msgBuf)
uint32_t
รับขนาดเพย์โหลด Weave สูงสุดซึ่งพอดีกับ PacketBuffer ที่กำหนด
GetPeerDescription(char *buf, uint32_t bufSize) const
void
สร้างสตริงที่อธิบายโหนดเพียร์และข้อมูลที่อยู่ / การเชื่อมต่อที่เกี่ยวข้อง
GetPeerIPAddress(nl::Inet::IPAddress & address, uint16_t & port, InterfaceId & interfaceId) const
void
ดึงข้อมูลที่อยู่ IP ของแอปเทียบเท่า (หากมี)
GetPeerNodeId(void) const
uint64_t
ดึงข้อมูลรหัสโหนดของเพียร์การเชื่อมโยง
GetProtocolLayerCallback(EventCallback & callback, void *& state) const
void
GetState(void) const
State
ดึงข้อมูลสถานะปัจจุบันของการเชื่อมโยง
IsAuthenticMessageFromPeer(const WeaveMessageInfo *msgInfo)
bool
พิจารณาว่าข้อความขาเข้าบางรายการมาจากเพียร์ที่กำหนดค่าไว้และผ่านการตรวจสอบสิทธิ์อย่างเหมาะสมหรือไม่
IsConnectionTransport() const
bool
IsPreparing(void) const
bool
IsReady(void) const
bool
IsUDPTransport() const
bool
IsUnreliableUDPTransport() const
bool
IsWRMTransport() const
bool
NewExchangeContext(ExchangeContext *& appExchangeContext)
จัดสรรบริบทของ Exchange ใหม่สำหรับสื่อสารกับเพียร์ที่เป็นเป้าหมายของการเชื่อมโยง
Release(void)
void
ปล่อยการอ้างอิงไปยังออบเจ็กต์การเชื่อมโยง
RequestPrepare()
ขอให้แอปพลิเคชันกำหนดค่าและเตรียมการเชื่อมโยง
Reset(void)
void
รีเซ็ตการเชื่อมโยงกลับเป็นสถานะที่ไม่ได้กำหนดค่า
SetDefaultResponseTimeout(uint32_t msec)
void
กำหนดระยะหมดเวลาการตอบกลับเริ่มต้นของ Exchange ที่จะใช้เมื่อสื่อสารกับเพียร์
SetDefaultWRMPConfig(const WRMPConfig & wrmpConfig)
void
กำหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับเพียร์
SetEventCallback(EventCallback aEventCallback)
void
ตั้งค่าฟังก์ชันที่แอปพลิเคชันกำหนดที่จะเรียกใช้เมื่อมีเหตุการณ์ API สำหรับการเชื่อมโยง
SetProtocolLayerCallback(EventCallback callback, void *state)
void
ตั้งค่าฟังก์ชันเรียกกลับของเหตุการณ์สำหรับโค้ดเลเยอร์โปรโตคอลโดยใช้การเชื่อมโยงในนามของแอปพลิเคชัน

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

DefaultEventHandler(void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void
ตัวแฮนเดิลเริ่มต้นสำหรับการเชื่อมโยงเหตุการณ์ API

คลาส

nl::Weave::Binding::Configuration

มีอินเทอร์เฟซสไตล์ประกาศสำหรับการกำหนดค่าและเตรียมออบเจ็กต์ การเชื่อมโยง

โครงสร้าง

nl::Weave::Binding::InEventParam

ป้อนพารามิเตอร์ไปยังเหตุการณ์ API การเชื่อมโยง

nl::Weave::Binding::OutEventParam

ส่งออกพารามิเตอร์ไปยังเหตุการณ์ API การเชื่อมโยง

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

@23

 @23
พร็อพเพอร์ตี้
kGetPeerDescription_MaxLength

ความยาวสูงสุดของสตริง (รวมถึงอักขระ NUL) ที่แสดงผลโดย GetPeerDescription()

EventCallback

void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

EventType

 EventType
พร็อพเพอร์ตี้
kEvent_BindingFailed

การเชื่อมโยงล้มเหลวและจะใช้เพื่อสื่อสารกับแอปเทียบเท่าไม่ได้อีกต่อไป

kEvent_BindingReady

การเตรียมพร้อมสำหรับการเชื่อมโยงประสบความสำเร็จและสามารถใช้การเชื่อมโยงเพื่อสื่อสารกับเพียร์ได้แล้ว

kEvent_ConnectionEstablished

สร้างการเชื่อมต่อ Weave ที่ขอแล้ว

kEvent_DefaultCheck

ใช้เพื่อตรวจสอบการจัดการเหตุการณ์เริ่มต้นที่ถูกต้องในแอปพลิเคชัน

kEvent_PASEParametersRequested

แอปพลิเคชันจะขอให้คุณระบุพารามิเตอร์ที่จะใช้ในระหว่างการสร้างเซสชัน PASE

kEvent_PrepareFailed

เตรียมการสำหรับการเชื่อมโยงไม่สำเร็จ

kEvent_PrepareRequested

ระบบจะขอให้แอปพลิเคชันกำหนดค่าและเตรียมการเชื่อมโยงสำหรับการใช้งานโดยสแต็กเครือข่าย

kEvent_TAKEParametersRequested

แอปพลิเคชันจะขอให้คุณระบุพารามิเตอร์ที่จะใช้ในระหว่างการสร้างเซสชัน TAKE

รัฐ

 State

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

AppState

void * AppState

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

AddRef

void AddRef(
  void
)

สำรองการอ้างอิงไปยังออบเจ็กต์การเชื่อมโยง

AdjustResponseTimeout

WEAVE_ERROR AdjustResponseTimeout(
  ExchangeContext *apExchangeContext
) const 

กำหนดค่าบริบท Exchange ที่มีอยู่อีกครั้งเพื่อปรับระยะหมดเวลาการตอบกลับ

รายละเอียด
พารามิเตอร์
[in] apExchangeContext
ตัวชี้ไปยังออบเจ็กต์บริบทของ Exchange เพื่อกำหนดค่าใหม่

AllocateRightSizedBuffer

WEAVE_ERROR AllocateRightSizedBuffer(
  PacketBuffer *& buf,
  const uint32_t desiredSize,
  const uint32_t minSize,
  uint32_t & outMaxPayloadSize
)

BeginConfiguration

Configuration BeginConfiguration()

กระบวนการกำหนดค่าการเชื่อมโยง

แอปพลิเคชันต้องเรียกใช้ BeginConfiguration() เพื่อกำหนดค่าการเชื่อมโยง ก่อนที่จะเตรียมความพร้อมสำหรับการสื่อสารกับเพียร์

รายละเอียด
การส่งคืน
ออบเจ็กต์ Binding::Configuration ที่ใช้กําหนดค่าการเชื่อมโยงได้

CanBePrepared

bool CanBePrepared(
  void
) const 

ปิด

void Close(
  void
)

ปิดออบเจ็กต์การเชื่อมโยงแล้วปล่อยการอ้างอิง

เมื่อเรียกใช้ เมธอดนี้จะทำให้การเชื่อมโยงเข้าสู่สถานะปิด ระบบจะยกเลิกการเตรียมการที่กำลังดำเนินการเพื่อเตรียมการเชื่อมโยงสำหรับการเชื่อมโยง และถอนทรัพยากรการสื่อสารภายนอกทั้งหมดที่ถือโดยการเชื่อมโยง

การเรียกใช้ Close() จะลดจำนวนข้อมูลอ้างอิงที่เชื่อมโยงกับการเชื่อมโยง ซึ่งจะทำให้ออบเจ็กต์ว่างมากขึ้นหากจำนวนข้อมูลอ้างอิงกลายเป็น 0

GetConnection

WeaveConnection * GetConnection() const 

รับออบเจ็กต์การเชื่อมต่อ Weave ที่เชื่อมโยงกับการเชื่อมโยง

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

GetDefaultResponseTimeout

uint32_t GetDefaultResponseTimeout() const 

รับระยะหมดเวลาการตอบกลับเริ่มต้นของ Exchange ที่จะใช้เมื่อสื่อสารกับเพียร์

รายละเอียด
การส่งคืน
ระยะหมดเวลาตอบกลับ หน่วยเป็นมิลลิวินาที

GetDefaultWRMPConfig

const WRMPConfig & GetDefaultWRMPConfig(
  void
) const 

รับการกำหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับเพียร์

รายละเอียด
การส่งคืน
การอ้างอิงไปยังโครงสร้าง WRMPConfig ที่มีค่าของการกำหนดค่าเริ่มต้น

GetEncryptionType

uint8_t GetEncryptionType(
  void
) const 

เรียกข้อมูลประเภทการเข้ารหัสข้อความที่จะใช้เมื่อเข้ารหัสข้อความไปยัง/จากเพียร์

GetEventCallback

EventCallback GetEventCallback() const 

รับฟังก์ชันที่จะเรียกใช้เมื่อเกิดเหตุการณ์ API สำหรับการเชื่อมโยง

รายละเอียด
การส่งคืน
ตัวชี้ไปยังฟังก์ชันเรียกกลับ

GetExchangeManager

WeaveExchangeManager * GetExchangeManager() const 

GetKeyId

uint32_t GetKeyId(
  void
) const 

เรียกดูรหัสของคีย์การเข้ารหัสข้อความที่จะใช้เมื่อเข้ารหัสข้อความไปยัง/จากไปยังเพียร์

GetLogId

uint16_t GetLogId(
  void
) const 

รับรหัสที่ไม่ซ้ำกันสำหรับการเชื่อมโยง

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const System::PacketBuffer *msgBuf
)

รับขนาดเพย์โหลด Weave สูงสุดซึ่งพอดีกับ PacketBuffer ที่กำหนด

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

นอกจากนี้ วิธีการนี้จะช่วยให้มั่นใจได้ว่าเพย์โหลด Weave จะไม่ล้น PacketBuffer ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] msgBuf
ตัวชี้ไปยัง PacketBuffer ซึ่งจะเขียนเปย์โหลดของข้อความ
การส่งคืน
ขนาดเพย์โหลด Weave สูงสุด

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

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

GetPeerIPAddress

void GetPeerIPAddress(
  nl::Inet::IPAddress & address,
  uint16_t & port,
  InterfaceId & interfaceId
) const 

ดึงข้อมูลที่อยู่ IP ของแอปเทียบเท่า (หากมี)

ความพร้อมใช้งานของข้อมูลที่อยู่ IP ของแอปเทียบเท่าจะขึ้นอยู่กับสถานะและการกำหนดค่าของการเชื่อมโยง ข้อมูลที่อยู่ IP จะใช้ได้เฉพาะเมื่อใช้การรับส่งข้อมูลแบบ IP (TCP, UDP หรือ UDP กับ WRMP) เท่านั้น ก่อนเริ่มการเตรียมการ ข้อมูลที่อยู่จะพร้อมใช้งานเฉพาะเมื่อแอปพลิเคชันตั้งค่าไว้อย่างชัดเจนในระหว่างการกำหนดค่า ในช่วงเตรียมการ ข้อมูลที่อยู่จะพร้อมให้ใช้งานเมื่อเตรียมที่อยู่เสร็จสิ้น (เช่น หลังจากการแปลง DNS เสร็จสิ้น) หลังจากที่การเชื่อมโยงพร้อมใช้งานแล้ว ข้อมูลที่อยู่จะยังคงอยู่จนกว่าจะมีการรีเซ็ตการเชื่อมโยง

รายละเอียด
พารามิเตอร์
[out] address
การอ้างอิงไปยังออบเจ็กต์ IPAddress ที่จะได้รับที่อยู่ IP ของผู้เพียร์ หากข้อมูลที่อยู่ IP ของแอปเทียบเท่าไม่พร้อมใช้งาน ระบบจะตั้งค่านี้เป็น IPAddress::Any
[out] port
การอ้างอิงไปยังจำนวนเต็มที่จะได้รับหมายเลขพอร์ตของแอปเทียบเท่า หากไม่มีข้อมูลที่อยู่ IP ของแอปเทียบเท่า ค่านี้จะไม่มีการกำหนด
[out] interfaceId
การอ้างอิงไปยังจำนวนเต็มที่จะได้รับ ID ของอินเทอร์เฟซเครือข่ายที่สามารถเข้าถึงเพียร์ได้ หากไม่มีข้อมูลที่อยู่ IP ของแอปเทียบเท่า ค่านี้จะไม่มีการกำหนด

GetPeerNodeId

uint64_t GetPeerNodeId(
  void
) const 

ดึงข้อมูลรหัสโหนดของเพียร์การเชื่อมโยง

ใช้ได้เพียงครั้งเดียวเมื่อเตรียมออบเจ็กต์การเชื่อมโยงแล้ว

รายละเอียด
การส่งคืน
รหัสโหนด Weave ของเพียร์

GetProtocolLayerCallback

void GetProtocolLayerCallback(
  EventCallback & callback,
  void *& state
) const 

GetState

State GetState(
  void
) const 

ดึงข้อมูลสถานะปัจจุบันของการเชื่อมโยง

รายละเอียด
การส่งคืน
สถานะการเชื่อมโยง

IsAuthenticMessageFromPeer

bool IsAuthenticMessageFromPeer(
  const WeaveMessageInfo *msgInfo
)

พิจารณาว่าข้อความขาเข้าบางรายการมาจากเพียร์ที่กำหนดค่าไว้และผ่านการตรวจสอบสิทธิ์อย่างเหมาะสมหรือไม่

วิธีนี้จะยืนยันรายละเอียดต่อไปนี้เกี่ยวกับข้อความ

  • ข้อความที่มาจากโหนดเพียร์ของการเชื่อมโยง
  • ได้รับข้อความผ่านประเภทการส่งเดียวกันกับการเชื่อมโยง หากได้รับข้อความผ่านการเชื่อมต่อ เมธอดจะยืนยันว่าได้รับข้อความผ่านการเชื่อมต่อที่ถูกต้องซึ่งเชื่อมโยงกับการเชื่อมโยงนั้นด้วย
  • คีย์การเข้ารหัสและประเภทที่ใช้เพื่อเข้ารหัสข้อความตรงกับที่กำหนดค่าไว้ในการเชื่อมโยง สำหรับการเชื่อมโยงที่กำหนดค่าโดยไม่ต้องใช้การรักษาความปลอดภัย เมธอดจะยืนยันว่าข้อความขาเข้าไม่ได้เข้ารหัส

เมธอดนี้มีไว้เพื่อใช้ในโปรโตคอลต่างๆ เช่น WDM ซึ่งแอปเทียบเท่าสามารถเริ่มการแลกเปลี่ยนกลับไปยังโหนดในเครื่องได้ทันที หลังจากการแลกเปลี่ยนครั้งแรกจากโหนดไปยังเพียร์ ในกรณีเช่นนี้ เมธอดจะช่วยให้โหนดในเครื่องยืนยันว่าข้อความที่ไม่พึงประสงค์ที่เข้ามาใหม่นั้นส่งมาโดยเพียร์ที่เกี่ยวข้อง (สำหรับการเชื่อมโยงที่กำหนดค่าโดยไม่ใช้การเข้ารหัสข้อความ การยืนยันนี้จะไม่ให้ค่าใดๆ ในแง่ของการรักษาความปลอดภัย เป็นเพียงการยืนยันว่ารหัสโหนดของผู้ส่งและประเภทการส่งตรงกัน)

โปรดทราบว่าหากการเชื่อมโยงไม่อยู่ในสถานะ "พร้อม" เมธอดนี้จะแสดงค่าเท็จเสมอ

รายละเอียด
พารามิเตอร์
[in] msgInfo
ข้อมูลข้อความ Weave สำหรับข้อความขาเข้า
การส่งคืน
เป็นจริงหากข้อความมาจากเพื่อนเดียวกันจริงๆ

IsConnectionTransport

bool IsConnectionTransport() const 

IsPreparing

bool IsPreparing(
  void
) const 

รายละเอียด
การส่งคืน
เป็นจริงหากกำลังเตรียมการเชื่อมโยงอยู่

IsReady

bool IsReady(
  void
) const 

รายละเอียด
การส่งคืน
เป็นจริงหากการเชื่อมโยงอยู่ในสถานะพร้อม

IsUDPTransport

bool IsUDPTransport() const 

IsUnreliableUDPTransport

bool IsUnreliableUDPTransport() const 

IsWRMTransport

bool IsWRMTransport() const 

NewExchangeContext

WEAVE_ERROR NewExchangeContext(
  ExchangeContext *& appExchangeContext
)

จัดสรรบริบทของ Exchange ใหม่สำหรับสื่อสารกับเพียร์ที่เป็นเป้าหมายของการเชื่อมโยง

รายละเอียด
พารามิเตอร์
[out] appExchangeContext
การอ้างอิงไปยังตัวชี้ที่จะได้รับออบเจ็กต์ Exchange Context ที่จัดสรรใหม่ ตัวชี้จะถูกตั้งค่าเป็น NULL ในกรณีที่วิธีการล้มเหลว
แสดงผลค่า
WEAVE_NO_ERROR
กรณีที่จัดสรรบริบทของ Exchange สำเร็จ
WEAVE_ERROR_NO_MEMORY
หากไม่มีหน่วยความจำที่จะจัดสรรบริบทของการแลกเปลี่ยน
WEAVE_ERROR_INCORRECT_STATE
หากการเชื่อมโยงไม่อยู่ในสถานะ "พร้อม"
other
ข้อผิดพลาดอื่นๆ ที่เกี่ยวข้องกับการกำหนดค่าบริบทของ Exchange ตามการกำหนดค่าการเชื่อมโยง

เผยแพร่

void Release(
  void
)

ปล่อยการอ้างอิงไปยังออบเจ็กต์การเชื่อมโยง

หากไม่มีการอ้างอิงไปยังออบเจ็กต์การเชื่อมโยงอีก การเชื่อมโยงจะปิดและปล่อยว่าง

RequestPrepare

WEAVE_ERROR RequestPrepare()

ขอให้แอปพลิเคชันกำหนดค่าและเตรียมการเชื่อมโยง

โค้ดเลเยอร์โปรโตคอลสามารถใช้วิธีนี้ในการเชื่อมโยงที่ยังไม่ได้รับการกำหนดค่า หรือทำไม่สำเร็จ เพื่อทริกเกอร์เหตุการณ์กับแอปพลิเคชัน (kEvent_PrepareRequested) ที่ขอให้กำหนดค่าและเตรียมการเชื่อมโยงสำหรับการใช้งาน

ระบบจะเรียกใช้เมธอดนี้ได้ในการเชื่อมโยงที่มีสถานะ "ไม่ได้กำหนดค่า" หรือ "ล้มเหลว" เท่านั้น

หากแอปพลิเคชันไม่รองรับการกำหนดค่าแบบออนดีมานด์/การเตรียมการเชื่อมโยง เมธอดจะล้มเหลวโดยมี WEAVE_ERROR_NOT_IMPLEMENTED

รีเซ็ต

void Reset(
  void
)

รีเซ็ตการเชื่อมโยงกลับเป็นสถานะที่ไม่ได้กำหนดค่า

เมื่อเรียก reset() การดำเนินการที่เตรียมการซึ่งอยู่ระหว่างดำเนินการสำหรับการเชื่อมโยงจะถูกยกเลิก และระบบจะถอนทรัพยากรการสื่อสารภายนอกทั้งหมดที่ถือโดยการเชื่อมโยงนั้น รีเซ็ต() จะวางการเชื่อมโยงในสถานะไม่ได้กำหนดค่า หลังจากนั้นอาจมีการกำหนดค่าและจัดเตรียมอีกครั้ง

รีเซ็ต() จะไม่เปลี่ยนจำนวนอ้างอิงของการเชื่อมโยง

SetDefaultResponseTimeout

void SetDefaultResponseTimeout(
  uint32_t msec
)

กำหนดระยะหมดเวลาการตอบกลับเริ่มต้นของ Exchange ที่จะใช้เมื่อสื่อสารกับเพียร์

รายละเอียด
พารามิเตอร์
[in] timeout
ระยะหมดเวลาการตอบกลับใหม่ หน่วยเป็นมิลลิวินาที

SetDefaultWRMPConfig

void SetDefaultWRMPConfig(
  const WRMPConfig & wrmpConfig
)

กำหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับเพียร์

รายละเอียด
พารามิเตอร์
[in] aWRMPConfig
การอ้างอิงไปยังโครงสร้าง WRMPConfig ที่มีการกำหนดค่าเริ่มต้นใหม่

SetEventCallback

void SetEventCallback(
  EventCallback aEventCallback
)

ตั้งค่าฟังก์ชันที่แอปพลิเคชันกำหนดที่จะเรียกใช้เมื่อมีเหตุการณ์ API สำหรับการเชื่อมโยง

รายละเอียด
พารามิเตอร์
[in] aEventCallback
ตัวชี้ไปยังฟังก์ชันเรียกกลับ

SetProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

ตั้งค่าฟังก์ชันเรียกกลับของเหตุการณ์สำหรับโค้ดเลเยอร์โปรโตคอลโดยใช้การเชื่อมโยงในนามของแอปพลิเคชัน

ระบบจะเรียกใช้ฟังก์ชันนี้เพิ่มเติมจากฟังก์ชันเรียกกลับที่แอปพลิเคชันกำหนดเมื่อมีเหตุการณ์ API สำหรับการเชื่อมโยง

รายละเอียด
พารามิเตอร์
[in] callback
ตัวชี้ไปยังฟังก์ชันเรียกกลับ
[in] state
ตัวชี้ไปยังออบเจ็กต์สถานะที่จะให้กับโค้ดเลเยอร์โปรโตคอลเมื่อมีการเรียกกลับเลเยอร์โปรโตคอล

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

DefaultEventHandler

void DefaultEventHandler(
  void *apAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

ตัวแฮนเดิลเริ่มต้นสำหรับการเชื่อมโยงเหตุการณ์ API

แอปพลิเคชันจะต้องเรียกใช้เมธอดนี้สําหรับเหตุการณ์ API ที่ไม่รู้จักหรือจัดการ พารามิเตอร์ที่ระบุต้องเหมือนกับพารามิเตอร์ที่ส่งผ่านโดยการเชื่อมโยงกับฟังก์ชันเครื่องจัดการเหตุการณ์ของแอปพลิเคชัน

รายละเอียด
พารามิเตอร์
[in] apAppState
ตัวชี้ไปยังข้อมูลสถานะที่กำหนดโดยแอปพลิเคชันที่เชื่อมโยงกับการเชื่อมโยง
[in] aEvent
รหัสเหตุการณ์ที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์
[in] aInParam
การอ้างอิงของพารามิเตอร์เหตุการณ์อินพุตที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์
[in] aOutParam
การอ้างอิงของพารามิเตอร์เหตุการณ์เอาต์พุตที่ส่งผ่านโดยโค้ดเรียกกลับของเหตุการณ์