ไม่มี:: สาน:: โปรไฟล์:: DataManagement_Legacy:: ผูกพัน
#include <src/lib/profiles/data-management/Legacy/Binding.h>
เข้าเล่ม ระดับการบริหารจัดการรัฐการสื่อสารในนามของนิติบุคคลแอพลิเคชันที่ใช้สาน
สรุป
เมื่อแอปพลิเคชันต้องการใช้ Weave เพื่อสื่อสารกับเอนทิตีระยะไกล มีตัวเลือกมากมาย เข้าเล่ม ระดับคอกตัวเลือกเหล่านี้และจัดพวกเขาในลักษณะที่ว่าสิ่งที่ง่ายเป็นเรื่องง่ายและสิ่งที่ยากมากขึ้นที่ซูฮกน้อย ตัวเลือกที่ครอบคลุม ได้แก่ :
- การสื่อสาร UDP unicast กับโหนดเพียร์ที่รู้จัก
- UDP ออกอากาศด้วยโหนด "ใดๆ"
- การสื่อสาร unicast WRMP กับโหนดเพียร์ที่รู้จัก
- การสื่อสาร TCP กับโหนดเพียร์ที่รู้จัก
- การสื่อสาร TCP กับปลายทางบริการที่รู้จักโดยใช้อินสแตนซ์ตัวจัดการบริการเพื่อตั้งค่า
- การสื่อสาร TCP ตามการเชื่อมต่อที่สร้างไว้ล่วงหน้า
ตัวสร้างและตัวทำลาย | |
---|---|
Binding (void) ตัวสร้างเริ่มต้นสำหรับ การผูก วัตถุ | |
~Binding (void) destructor สำหรับ การผูก วัตถุ |
ประเภทสาธารณะ | |
---|---|
@165 { | enum ชุดของ การผูก รัฐวัตถุ |
คุณลักษณะสาธารณะ | |
---|---|
mAuthMode | WeaveAuthMode โหมดการตรวจสอบความถูกต้องของ Weave ที่จะใช้ |
mConnection | ตัวชี้ไปยังการเชื่อมต่อ Weave ที่ใช้อยู่ในการเชื่อมโยงนี้ |
mEngine | ตัวชี้ไปยัง ProtocolEngine วัตถุที่เกี่ยวข้องกับการนี้ เข้าเล่ม |
mPeerNodeId | uint64_t ID โหนด 64 บิตของเป้าหมายการโยง |
mServiceMgr | ตัวชี้ไปยังออบเจ็กต์ ServiceManager (เป็นทางเลือก) ที่จะใช้ในการผูกนี้ |
mState | uint8_t ปัจจุบัน เข้าเล่ม สถานะของวัตถุ |
mTransport | uint8_t การขนส่งเพื่อการใช้งานในการดำเนินการนี้ เข้าเล่ม |
งานสาธารณะ | |
---|---|
CompleteConfirm ( WeaveConnection *aConnection) | void จัดการการยืนยันคำขอผูก |
CompleteConfirm ( StatusReport & aReport) | void จัดการกับความล้มเหลวของการร้องขอการผูก |
CompleteConfirm (void) | void จัดการการยืนยันคำขอผูก |
CompleteRequest ( ProtocolEngine *aEngine) | ร้องขอให้เสร็จสิ้นการผูกมัด |
Connect ( WeaveConnection *aConnection) | ทำการผูก TCP โดยให้การเชื่อมต่อที่เสร็จสมบูรณ์ |
Finalize (void) | void "ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน |
Finalize ( WEAVE_ERROR aErr) | void "ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน |
Free (void) | void ล้างสถานะการผูก |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | ผลิต ExchangeContext วัตถุจาก เข้าเล่ม |
IncompleteIndication ( StatusReport & aReport) | void จัดการกับความล้มเหลวของการผูกมัด |
Init (const uint64_t & aPeerNodeId) | เริ่มต้น ผูกพัน ที่มีเพียงหมายเลขโหนด |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | เริ่มต้น การผูก วัตถุตามรหัสเพียร์และการขนส่ง |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | เริ่มต้น ผูก วัตถุปลายทางบริการ |
Init ( WeaveConnection *aConnection) | เริ่มต้น ผูก วัตถุกับ WeaveConnection |
IsComplete (void) | bool ตรวจสอบว่าการผูกเสร็จสมบูรณ์หรือไม่ |
IsFree (void) | bool เช็คมีผลผูกพันฟรี |
UncompleteRequest (void) | void ทำให้การผูกมัดไม่สมบูรณ์ |
UncompleteRequest ( WEAVE_ERROR aErr) | void ทำให้การผูกมัดไม่สมบูรณ์ |
ประเภทสาธารณะ
@165
@165
คุณลักษณะสาธารณะ
mAuthMode
WeaveAuthMode mAuthMode
โหมดการตรวจสอบความถูกต้องของ Weave ที่จะใช้
(อ่านเท่านั้น)
นี่คือโหมดการตรวจสอบสิทธิ์ที่ใช้ในการสื่อสารทั้งหมดที่ควบคุมโดยการเชื่อมโยงนี้
mConnection
WeaveConnection * mConnection
ตัวชี้ไปยังการเชื่อมต่อ Weave ที่ใช้อยู่ในการเชื่อมโยงนี้
(อ่านเท่านั้น)
การผูก TCP อาจเริ่มต้นได้ด้วยการเชื่อมต่อทันทีจากค้างคาวหรืออาจจัดสรรเมื่อเสร็จสิ้น
mEngine
ProtocolEngine * mEngine
ตัวชี้ไปยัง ProtocolEngine วัตถุที่เกี่ยวข้องกับการนี้ เข้าเล่ม
โดยทั่วไปการผูกจะเสร็จสมบูรณ์โดยคำนึงถึงเอ็นจิ้นโปรโตคอลเฉพาะ ซึ่งส่วนใหญ่ใช้เป็นวิธีการเข้าถึง MessageLayer นี่คือที่ที่เราติดตามมัน
mPeerNodeId
uint64_t mPeerNodeId
ID โหนด 64 บิตของเป้าหมายการโยง
(อ่านเท่านั้น)
ทุก เข้าเล่ม มีนิติบุคคลเป้าหมายซึ่งเป็นชื่อที่นี่ นอกจากรหัสโหนด Weave แล้ว ยังสามารถตั้งชื่อปลายทางของบริการได้อีกด้วย
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
ตัวชี้ไปยังออบเจ็กต์ ServiceManager (เป็นทางเลือก) ที่จะใช้ในการผูกนี้
(อ่านเท่านั้น)
เมื่อผูกกับบริการ Weave อาจมีการระบุ ID ปลายทางของบริการ 64 บิตในเวลาเริ่มต้นแทนที่ ID โหนด Weave ในกรณีนี้ จำเป็นต้องมีออบเจ็กต์ ServiceManager เพื่อทำการผูกให้สมบูรณ์ การเชื่อมโยง TCP หรือ WRMP ปกติไม่ต้องการวัตถุ ServiceManager
mState
uint8_t mState
ปัจจุบัน เข้าเล่ม สถานะของวัตถุ
การดำเนินการ "เสร็จสมบูรณ์" หนึ่งครั้งสามารถเรียกใช้ได้ครั้งละหนึ่งรายการเท่านั้น และไม่ว่าในกรณีใด หากคุณขอให้ทำการผูกให้เสร็จสมบูรณ์ ฟังก์ชันจะเรียกฟังก์ชันยืนยันทันที ตัวแปรสถานะด้านล่างติดตามสถานะปัจจุบันและทำหน้าที่เป็นตัวล็อก
mTransport
uint8_t mTransport
การขนส่งเพื่อการใช้งานในการดำเนินการนี้ เข้าเล่ม
(อ่านเท่านั้น)
ค่าที่เป็นไปได้สำหรับ mTransport ถูกกำหนดใน DMConstants.h
งานสาธารณะ
เสร็จสมบูรณ์ยืนยัน
void CompleteConfirm( WeaveConnection *aConnection )
จัดการการยืนยันคำขอผูก
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
เสร็จสมบูรณ์ยืนยัน
void CompleteConfirm( StatusReport & aReport )
จัดการกับความล้มเหลวของการร้องขอการผูก
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
เสร็จสมบูรณ์ยืนยัน
void CompleteConfirm( void )
จัดการการยืนยันคำขอผูก
กรอกคำขอ
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
ร้องขอให้เสร็จสิ้นการผูกมัด
ความสำเร็จของการผูกพันเป็นอย่างน้อยสำหรับผูกที่กำหนด TCP ดำเนินการด้วยความเคารพโดยเฉพาะอย่างยิ่ง ProtocolEngine วัตถุซึ่งให้การเข้าถึงอินสแตนซ์ ExchangeManager
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
| ||||||
ส่งกลับค่า |
| ||||||
คืนสินค้า | มิฉะนั้นใด ๆ WEAVE_ERROR กลับในขณะที่พยายามที่จะเชื่อมต่อ |
เชื่อมต่อ
WEAVE_ERROR Connect( WeaveConnection *aConnection )
ทำการผูก TCP โดยให้การเชื่อมต่อเสร็จสมบูรณ์
ไม่สามารถใช้การเชื่อมโยง TCP ที่เริ่มต้นใหม่ได้จนกว่าจะเสร็จสิ้น โดยปกติจะทำตามความต้องการเมื่อแอปพลิเคชันพยายามใช้การเชื่อมโยงเพื่อส่งข้อความ แต่ก็สามารถทำให้เสร็จสิ้นได้อย่างชัดเจนด้วยการเชื่อมต่อ Weave
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
| ||||||
ส่งกลับค่า |
|
จบ
void Finalize( void )
"ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน
ผูกอาจมีสถานะที่ต้องทำความสะอาดเช่นการปิดการเชื่อมต่อซึ่งจะถูกจัดการโดย Uncomplete () วิธีการนอกเหนือไปจากรัฐที่จะถูกล้างออกเพียงเพื่อสถานะเริ่มต้นโดย ฟรี () วิธีการ วิธีนี้ ส่วนใหญ่เพื่อความสะดวก เรียกทั้งสองอย่าง
ดูสิ่งนี้ด้วย:จบ(WEAVE_ERROR)
จบ
void Finalize( WEAVE_ERROR aErr )
"ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน
ผูกอาจมีสถานะที่ต้องทำความสะอาดเช่นการปิดการเชื่อมต่อซึ่งจะถูกจัดการโดย Uncomplete () วิธีการนอกเหนือไปจากรัฐที่จะถูกล้างออกเพียงเพื่อสถานะเริ่มต้นโดย ฟรี () วิธีการ วิธีนี้ ส่วนใหญ่เพื่อความสะดวก เรียกทั้งสองอย่าง
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
จบ(เป็นโมฆะ)
ฟรี
void Free( void )
ล้างสถานะการผูก
คืนสถานะการผูกมัดทั้งหมดกลับเป็นสถานะเดิมโดยไม่มีเงื่อนไข
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
ผลิต ExchangeContext วัตถุจาก เข้าเล่ม
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
| ||||
คืนสินค้า | ตัวชี้ไปยัง ExchangeContext วัตถุหรือ NULL ในความล้มเหลว |
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
จัดการกับความล้มเหลวของการผูกมัด
วิธีการนี้จะเรียกและในที่สุดก็จะเรียกรถยกสูงชั้นเมื่อผูกพันล้มเหลวหลังจากเสร็จสิ้นคือหลังจาก CompleteConfirm () ได้รับการเรียกด้วยความสำเร็จที่แสดงถึงสถานะ
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
CompleteConfirm (StatusReport & aReport)
ในนั้น
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
เริ่มต้น ผูกพัน ที่มีเพียงหมายเลขโหนด
ซึ่งส่งผลให้มีผลผูกพันกับการขนส่งเริ่มต้นที่กำหนดค่าไว้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
| ||||
ส่งกลับค่า |
|
ในนั้น
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
เริ่มต้น การผูก วัตถุตามรหัสเพียร์และการขนส่ง
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
| ||||
ส่งกลับค่า |
|
ในนั้น
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
เริ่มต้น ผูก วัตถุปลายทางบริการ
นี่คือวิธีการผูกกับปลายทางเฉพาะในบริการ Nest การผูกประเภทนี้ต้องใช้กระบวนการเสร็จสิ้นหลายขั้นตอน ซึ่งอาจรวมถึงการเติมหรืออัปเดตแคชไดเรกทอรีบริการในเครื่อง ส่วนใหญ่ กระบวนการนี้ถูกซ่อนจากแอปพลิเคชัน แต่หมายความว่าข้อผิดพลาดที่เกิดขึ้นภายหลังในกระบวนการอาจถูกส่ง โดยปกติผ่านการเรียกกลับ "ยืนยัน" ที่เกี่ยวข้อง หลังจาก - บางครั้งนานหลังจากนั้น - คำขอเดิมที่จะใช้ (และเสร็จสมบูรณ์) การผูกมัด
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
| ||||||
ส่งกลับค่า |
|
ในนั้น
WEAVE_ERROR Init( WeaveConnection *aConnection )
เริ่มต้น ผูก วัตถุกับ WeaveConnection
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
| ||||
ส่งกลับค่า |
|
เสร็จสมบูรณ์
bool IsComplete( void )
ตรวจสอบว่าการผูกเสร็จสมบูรณ์หรือไม่
รายละเอียด | |
---|---|
คืนสินค้า | จริงถ้ามันสมบูรณ์เท็จอย่างอื่น |
CompleteRequest (ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
เช็คมีผลผูกพันฟรี
"ฟรี" ในบริบทนี้หมายถึง "มีรหัสโหนดเพียร์ที่กำหนดไว้" IsFree () ควรจะคิดว่าเป็นความหมาย "ได้ฟรี () เรียกว่าเกี่ยวกับมันและยังไม่ได้ถูกนำมาใช้ตั้งแต่ปี"
รายละเอียด | |
---|---|
คืนสินค้า | จริง ถ้าการผูกมัดนั้นว่าง มิฉะนั้น จะเป็นเท็จ |
คำขอที่ไม่สมบูรณ์
void UncompleteRequest( void )
ทำให้การผูกมัดไม่สมบูรณ์
โดยพื้นฐานแล้ว การผูกมัดจะต้องอยู่ในสถานะ "ไม่สมบูรณ์" หลังจากที่เรียกใช้วิธีการนี้แล้ว แต่ที่ละเอียดกว่านั้น สถานะที่เกี่ยวข้องใดๆ ที่ไม่มีอยู่ในการผูกตัวเอง เช่น การเชื่อมต่อ TCP ก็ควรได้รับการล้างเช่นกัน การใช้งานอาจพิจารณาเรียกใช้ UncompleteRequest () เป็นส่วนหนึ่งของการทำความสะอาดในข้อผิดพลาด
ดูสิ่งนี้ด้วย:UncompleteRequest(WEAVE_ERROR )
คำขอที่ไม่สมบูรณ์
void UncompleteRequest( WEAVE_ERROR aErr )
ทำให้การผูกมัดไม่สมบูรณ์
โดยพื้นฐานแล้ว การผูกมัดจะต้องอยู่ในสถานะ "ไม่สมบูรณ์" หลังจากที่เรียกใช้วิธีการนี้แล้ว แต่ที่ละเอียดกว่านั้น สถานะที่เกี่ยวข้องใดๆ ที่ไม่มีอยู่ในการผูกตัวเอง เช่น การเชื่อมต่อ TCP ก็ควรได้รับการล้างเช่นกัน การใช้งานอาจพิจารณาเรียกใช้ UncompleteRequest () เป็นส่วนหนึ่งของการทำความสะอาดในข้อผิดพลาด
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
UncompleteRequest (เป็นโมฆะ)
~ผูกพันB
virtual ~Binding( void )
destructor สำหรับ การผูก วัตถุ
ล้างสถานะภายในทั้งหมด และหากจำเป็น ให้ปิดการเชื่อมต่อที่เปิดอยู่