nl::Weave::Binding

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

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

สรุป

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

การกำหนดค่า

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

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

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

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

การสื่อสาร

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

การเปลี่ยนแปลงสถานะที่มีผลผูกพัน

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

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

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

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

เมื่อแอปพลิเคชันเสร็จสิ้นการเชื่อมโยงแล้ว แอปพลิเคชันอาจเรียกใช้ Close() ในการเชื่อมโยง การดำเนินการนี้จะเผยแพร่การอ้างอิงของแอปพลิเคชันกับ Binding และบล็อกการส่งเหตุการณ์ 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
ตั้งค่าฟังก์ชัน Callback ของเหตุการณ์สำหรับโค้ดเลเยอร์โปรโตคอลโดยใช้การเชื่อมโยงในนามของแอปพลิเคชัน

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

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

ชั้นเรียน

nl::Weave::Binding::Configuration

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

โครงสร้าง

nl::Weave::Binding::InEventParam

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

nl::Weave::Binding::OutEventParam

เอาต์พุตพารามิเตอร์ไปยังเหตุการณ์ Binding 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 ก่อนเตรียมแอปสำหรับการสื่อสารกับเพียร์

รายละเอียด
การคืนสินค้า
ออบเจ็กต์ 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 สำหรับการเชื่อมโยง

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

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 หากใส่บัฟเฟอร์ที่เล็กกว่า ระบบจะตัดสตริงให้พอดี ผลลัพธ์จะมีอักขระสิ้นสุด NUL ในทุกกรณี
[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
การอ้างอิงไปยังจำนวนเต็มที่จะรับรหัสของอินเทอร์เฟซเครือข่ายที่ใช้ติดต่อเพียร์ได้ หากไม่มีข้อมูลที่อยู่ 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 ที่แอปเทียบเท่าสามารถเริ่มการแลกเปลี่ยนกลับไปยังโหนดภายในตามธรรมชาติหลังจากการแลกเปลี่ยนครั้งแรกจากโหนดไปยังเพียร์ ในกรณีดังกล่าว เมธอดจะอนุญาตให้โหนดในเครื่องยืนยันว่าข้อความไม่พึงประสงค์ที่เข้ามาใหม่ถูกส่งโดยแอปเทียบเท่าที่เกี่ยวข้อง (แน่นอนว่าสำหรับการเชื่อมโยงที่กำหนดค่าโดยไม่ใช้การเข้ารหัสข้อความ การยืนยันนี้ไม่ให้คุณค่าในแง่ของการรักษาความปลอดภัย เป็นเพียงการยืนยันว่ารหัสโหนดของผู้ส่งและประเภทการนำส่งตรงกันเท่านั้น)

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

รายละเอียด
พารามิเตอร์
[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 ที่จัดสรรใหม่ ตัวชี้จะถูกตั้งค่าเป็น NULL ในกรณีที่เมธอดล้มเหลว
ผลลัพธ์
WEAVE_NO_ERROR
จัดสรรบริบท Exchange สำเร็จหรือไม่
WEAVE_ERROR_NO_MEMORY
หากไม่มีหน่วยความจำสำหรับจัดสรรบริบทการแลกเปลี่ยน
WEAVE_ERROR_INCORRECT_STATE
หากการเชื่อมโยงไม่ได้อยู่ในสถานะพร้อมใช้งาน
other
ข้อผิดพลาดอื่นๆ ที่เกี่ยวข้องกับการกำหนดค่าบริบท Exchange ตามการกำหนดค่าของการเชื่อมโยง

เผยแพร่

void Release(
  void
)

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

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

RequestPrepare

WEAVE_ERROR RequestPrepare()

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

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

วิธีการนี้จะเรียกใช้ได้เฉพาะในการเชื่อมโยงในสถานะ NotConfigured หรือ "ไม่ผ่าน"

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

รีเซ็ต

void Reset(
  void
)

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

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

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
ตัวชี้ไปยังฟังก์ชัน Callback

SetProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

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

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

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

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

DefaultEventHandler

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

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

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

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