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 กับแอปพลิเคชัน โดยแจ้งให้ทราบถึงการเปลี่ยนแปลงของสถานะการเชื่อมโยง' เช่น เมื่อเตรียมสําเร็จ แอปพลิเคชันจะได้รับเหตุการณ์แจ้งให้ทราบว่าการเชื่อมโยงพร้อมใช้งานแล้ว ในทํานองเดียวกัน หากช่องทางการสื่อสารที่สําคัญล้มเหลว ระบบจะส่งเหตุการณ์ไปยังแอปพลิเคชันเพื่อแจ้งให้ทราบว่าการเชื่อมโยงไม่อยู่ในสถานะที่พร้อมใช้งานแล้ว
ระบบจะส่งเหตุการณ์ API ไปยังแอปพลิเคชันผ่านฟังก์ชันเรียกกลับของเหตุการณ์ที่กําหนดไว้เมื่อจัดสรรการเชื่อมโยง
การเชื่อมโยงตลอดอายุ
การเชื่อมโยงนับว่าเป็นข้อมูลอ้างอิงเพื่อให้สามารถใช้ร่วมกันในคอมโพเนนต์ซอฟต์แวร์ได้หลายคอมโพเนนต์ เมื่อจัดสรรการเชื่อมโยงแล้ว ระบบจะสร้างข้อมูลอ้างอิงการเชื่อมโยงเดียว แอปพลิเคชันนี้มีหน้าที่รับผิดชอบในการเผยแพร่ข้อมูลอ้างอิงนี้ในอนาคต ซึ่งจะทําให้การเชื่อมโยงเป็นแบบฟรีสําหรับการใช้งานซ้ําได้
เมื่อเรียกใช้แอปพลิเคชันด้วยการเชื่อมโยง แอปพลิเคชันอาจเรียก Close() ในการเชื่อมโยง การดําเนินการนี้จะเผยแพร่ข้อมูลอ้างอิงของแอปพลิเคชันไปยังการเชื่อมโยง และบล็อกการส่งเหตุการณ์ API เพิ่มเติมทั้งหมด เมื่อถอนการอ้างอิงล่าสุดกับการเชื่อมโยงแล้ว ระบบจะปิดการอ้างอิงโดยอัตโนมัติ
ประเภทสาธารณะ |
|
---|---|
@23{
|
enum |
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
|
Typedefvoid(*
|
EventType{
|
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:: |
มีอินเทอร์เฟซแบบประกาศรูปภาพสําหรับการกําหนดค่าและการเตรียมออบเจ็กต์การเชื่อมโยง |
โครงสร้าง |
|
---|---|
nl:: |
ป้อนพารามิเตอร์ให้กับเหตุการณ์ API การเชื่อมโยง |
nl:: |
พารามิเตอร์เอาต์พุตในเหตุการณ์ 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 ที่มีอยู่อีกครั้งเพื่อปรับระยะหมดเวลาการตอบกลับ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ประเภทการจัดสรรที่กําหนดการจัดสรรได้
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 ที่ระบุ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
ขนาดสูงสุดของ Weave Payload
|
คําอธิบาย GetPeer
void GetPeerDescription( char *buf, uint32_t bufSize ) const
สร้างสตริงที่อธิบายโหนดเพียร์และข้อมูลที่อยู่ / การเชื่อมต่อที่เกี่ยวข้อง
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
GetPeerIPAddress
void GetPeerIPAddress( nl::Inet::IPAddress & address, uint16_t & port, InterfaceId & interfaceId ) const
เรียกข้อมูลที่อยู่ IP ของแอปเทียบเท่า (หากมี)
ความพร้อมใช้งานของข้อมูลที่อยู่ IP ของแอปเทียบเท่าจะขึ้นอยู่กับสถานะและการกําหนดค่าการเชื่อมโยง ข้อมูลที่อยู่ IP จะใช้ได้เฉพาะเมื่อใช้การเดินทางแบบ IP (TCP, UDP หรือ UDP กับ WRMP) เท่านั้น ก่อนเริ่มเตรียม ข้อมูลที่อยู่จะพร้อมใช้งานก็ต่อเมื่อแอปพลิเคชันได้ระบุไว้อย่างชัดเจนระหว่างการกําหนดค่าเท่านั้น ในระยะเตรียมการ ข้อมูลที่อยู่จะพร้อมใช้งานเมื่อการจัดเตรียมที่อยู่เสร็จสมบูรณ์ (เช่น หลังจากการแปลง DNS เสร็จสมบูรณ์) หลังจากการเชื่อมโยงพร้อมแล้ว ข้อมูลที่อยู่จะยังคงอยู่จนกว่าจะมีการรีเซ็ตการเชื่อมโยง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
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 เสมอ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
เป็นจริงหากข้อความมาจากกลุ่มแอปเทียบเท่าจริงๆ
|
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 สําหรับสื่อสารกับแอปเทียบเท่าซึ่งเป็นเป้าหมายของการเชื่อมโยง
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
เผยแพร่
void Release( void )
ปล่อยการอ้างอิงออบเจ็กต์การเชื่อมโยง
หากไม่มีการอ้างอิงออบเจ็กต์การเชื่อมโยงอีกต่อไป การเชื่อมโยงจะปิดและยกเลิกการเชื่อมโยง
เตรียมพร้อม
WEAVE_ERROR RequestPrepare()
ขอให้แอปพลิเคชันกําหนดค่าและเตรียมการเชื่อมโยง
โค้ดเลเยอร์โปรโตคอลสามารถใช้วิธีนี้ในการเชื่อมโยงที่ยังไม่ได้กําหนดค่าหรือล้มเหลวเพื่อทริกเกอร์เหตุการณ์ไปยังแอปพลิเคชัน (kEvent_ กําลังเตรียมส่งคําขอ) ซึ่งขอการกําหนดค่าและเตรียมการเชื่อมโยงสําหรับการใช้งาน
วิธีการนี้สามารถเรียกใช้การเชื่อมโยงได้เฉพาะในสถานะไม่ได้กําหนดค่าหรือล้มเหลว
หากแอปพลิเคชันไม่รองรับการกําหนดค่าตามคําขอ/การเตรียมการเชื่อมโยง วิธีจะล้มเหลวด้วย WEhave_ERROR_NOT_IMPLATEDED
รีเซ็ต
void Reset( void )
รีเซ็ตการเชื่อมโยงกลับไปเป็นสถานะที่ไม่มีการกําหนดค่า
เมื่อมีการเรียก Reset() ระบบจะยกเลิกการดําเนินการเตรียมพร้อมที่อยู่ระหว่างการเชื่อมโยงสําหรับการเชื่อมโยง รวมถึงทรัพยากรการสื่อสารภายนอกทั้งหมดที่อยู่ในกลุ่ม Reset() จะวางการเชื่อมโยงในสถานะที่ไม่ได้กําหนดค่า หลังจากนั้นอาจมีการกําหนดค่าและเตรียมอีกครั้ง
Reset() จะไม่เปลี่ยนแปลงจํานวนการอ้างอิงของการเชื่อมโยง
ตั้งค่าการตอบกลับเริ่มต้นหมดเวลา
void SetDefaultResponseTimeout( uint32_t msec )
ตั้งค่าระยะหมดเวลาสําหรับการตอบกลับของ Exchange เริ่มต้นที่จะใช้เมื่อสื่อสารกับแอปเทียบเท่า
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ตั้งค่าเริ่มต้น WRMPConfig
void SetDefaultWRMPConfig( const WRMPConfig & wrmpConfig )
ตั้งค่าการกําหนดค่า WRMP เริ่มต้นที่จะใช้เมื่อสื่อสารกับแอปเทียบเท่า
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ตั้งค่าการเรียกกลับเหตุการณ์
void SetEventCallback( EventCallback aEventCallback )
ตั้งค่าฟังก์ชันที่กําหนดโดยแอปพลิเคชันให้เรียกใช้เมื่อมีเหตุการณ์ API สําหรับการเชื่อมโยง
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
SetProtocolLayerCallback
void SetProtocolLayerCallback( EventCallback callback, void *state )
ตั้งค่าฟังก์ชันเรียกกลับของเหตุการณ์สําหรับโค้ดเลเยอร์โปรโตคอลโดยใช้การเชื่อมโยงในนามของแอปพลิเคชัน
ระบบจะเรียกใช้ฟังก์ชันนี้เพิ่มเติมจากฟังก์ชันเรียกกลับที่กําหนดโดยแอปพลิเคชัน เมื่อมีเหตุการณ์ API สําหรับการเชื่อมโยง
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
ฟังก์ชันสาธารณะแบบคงที่
เครื่องจัดการเหตุการณ์เริ่มต้น
void DefaultEventHandler( void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
เครื่องจัดการเริ่มต้นสําหรับเหตุการณ์ API การเชื่อมโยง
แอปพลิเคชันจําเป็นต้องเรียกใช้เมธอดนี้สําหรับเหตุการณ์ API ใดๆ ก็ตามที่ไม่รู้จักหรือไม่รู้จัก พารามิเตอร์ที่ระบุต้องเหมือนกับพารามิเตอร์ที่ส่งโดยการเชื่อมโยงไปยังฟังก์ชันเครื่องจัดการเหตุการณ์ของแอปพลิเคชัน
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|