nl::การสาน:การเชื่อมโยง

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

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

สรุป

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

การกำหนดค่า

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

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

การจัดเตรียม

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

การสื่อสาร

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

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

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

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

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

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

เมื่อเรียกใช้แอปพลิเคชันด้วยการเชื่อมโยง แอปพลิเคชันอาจเรียก 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::การเชื่อมโยง::การกําหนดค่า

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

โครงสร้าง

nl:: Weave::การเชื่อมโยง::InEventParam

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

nl::Weave::การเชื่อมโยง::OutEventParam

พารามิเตอร์เอาต์พุตในเหตุการณ์ API ที่เชื่อมโยง

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

23

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

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

เรียกกลับเหตุการณ์

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

ประเภทเหตุการณ์

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

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

kEvent_BindingReady

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

kEvent_ConnectionEstablished

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

kEvent_DefaultCheck

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

kEvent_PASEParametersRequested

แอปพลิเคชันจะจัดหาพารามิเตอร์เพื่อใช้ระหว่างการสร้างเซสชัน PASE

kEvent_PrepareFailed

เตรียมการจัดเตรียมการเชื่อมโยงไม่สําเร็จ

kEvent_PrepareRequested

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

kEvent_TAKEParametersRequested

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

สถานะ

 State

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

สถานะแอป

void * AppState

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

เพิ่มการอ้างอิง

void AddRef(
  void
)

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

ปรับเปลี่ยนตามระยะหมดเวลา

WEAVE_ERROR AdjustResponseTimeout(
  ExchangeContext *apExchangeContext
) const 

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

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

ประเภทการจัดสรรที่กําหนดการจัดสรรได้

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

การกําหนดค่าเริ่มต้น

Configuration BeginConfiguration()

เป็นขั้นตอนการกําหนดค่าการเชื่อมโยง

แอปพลิเคชันต้องเรียกใช้ BeginConfiguration() เพื่อกําหนดค่า Binding ก่อนเตรียมสําหรับการสื่อสารกับแอปเทียบเท่า

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

เตรียมความพร้อมได้

bool CanBePrepared(
  void
) const 

ปิด

void Close(
  void
)

ปิดออบเจ็กต์การเชื่อมโยงและถอนการอ้างสิทธิ์

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

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

รับการเชื่อมต่อ

WeaveConnection * GetConnection() const 

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

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

รับการตอบกลับเริ่มต้นหมดเวลา

uint32_t GetDefaultResponseTimeout() const 

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

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

GetDefaultWRMPConfig

const WRMPConfig & GetDefaultWRMPConfig(
  void
) const 

รับการกําหนดค่า WRMP เริ่มต้นเพื่อใช้กับการสื่อสารกับเพื่อน

รายละเอียด
การคืนสินค้า
การอ้างอิงถึงโครงสร้าง WRMPConfig ที่มีค่าการกําหนดค่าเริ่มต้น

รับประเภทการเข้ารหัส

uint8_t GetEncryptionType(
  void
) const 

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

เรียกกลับเหตุการณ์

EventCallback GetEventCallback() const 

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

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

ตัวจัดการ GetExchange

WeaveExchangeManager * GetExchangeManager() const 

รหัสคีย์

uint32_t GetKeyId(
  void
) const 

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

รับ GetLogId

uint16_t GetLogId(
  void
) const 

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

ขนาดการโหลดสูงสุด WeavePayload

uint32_t GetMaxWeavePayloadSize(
  const System::PacketBuffer *msgBuf
)

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

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

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

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

คําอธิบาย GetPeer

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

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

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 

เรียกรหัสโหนดของแอปเทียบเท่า

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

รายละเอียด
การคืนสินค้า
รหัสโหนดที่เหมือนกับแอปเทียบเท่า

การเรียกกลับ ProTocolLayer

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

รับสถานะ

State GetState(
  void
) const 

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

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

IsAuthenticMessageFromPer

bool IsAuthenticMessageFromPeer(
  const WeaveMessageInfo *msgInfo
)

ตรวจสอบว่าข้อความขาเข้าหนึ่งๆ มาจากแอปเทียบเท่าที่กําหนดค่าไว้หรือไม่

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

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

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

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

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

IsConnectionTransport

bool IsConnectionTransport() const 

กําลังเตรียม

bool IsPreparing(
  void
) const 

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

พร้อมใช้งาน

bool IsReady(
  void
) const 

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

IsUDPTransport

bool IsUDPTransport() const 

การนําส่ง UDP ไม่น่าเชื่อถือ

bool IsUnreliableUDPTransport() const 

IsWRMTransport

bool IsWRMTransport() const 

บริบทใหม่ของ Exchange

WEAVE_ERROR NewExchangeContext(
  ExchangeContext *& appExchangeContext
)

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

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

เผยแพร่

void Release(
  void
)

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

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

เตรียมพร้อม

WEAVE_ERROR RequestPrepare()

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

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

วิธีการนี้สามารถเรียกใช้การเชื่อมโยงได้เฉพาะในสถานะไม่ได้กําหนดค่าหรือล้มเหลว

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

รีเซ็ต

void Reset(
  void
)

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

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

Reset() จะไม่เปลี่ยนแปลงจํานวนการอ้างอิงของการเชื่อมโยง

ตั้งค่าการตอบกลับเริ่มต้นหมดเวลา

void SetDefaultResponseTimeout(
  uint32_t msec
)

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

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

ตั้งค่าเริ่มต้น WRMPConfig

void SetDefaultWRMPConfig(
  const WRMPConfig & wrmpConfig
)

ตั้งค่าการกําหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับแอปเทียบเท่า

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

ตั้งค่าการเรียกกลับเหตุการณ์

void SetEventCallback(
  EventCallback aEventCallback
)

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

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

SetProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

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

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

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

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

เครื่องจัดการเหตุการณ์เริ่มต้น

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

เครื่องจัดการเริ่มต้นสําหรับเหตุการณ์ API การเชื่อมโยง

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

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