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

ไม่มี:: สาน:: โปรไฟล์:: 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 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
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

ชุดของ การผูก รัฐวัตถุ

คุณสมบัติ
kState_Complete

สถานะของ การผูก ที่จะเสร็จสมบูรณ์และพร้อมสำหรับการใช้

kState_Completing

สถานะของ การผูก ที่อยู่ในขั้นตอนของการเสร็จสิ้น

kState_Incomplete

เริ่มต้น (สุดท้าย) สถานะของ เข้าเล่ม

คุณลักษณะสาธารณะ

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

งานสาธารณะ

ผูกพัน

 Binding(
  void
)

ตัวสร้างเริ่มต้นสำหรับ การผูก วัตถุ

ล้างสถานะภายในทั้งหมด

เสร็จสมบูรณ์ยืนยัน

void CompleteConfirm(
  WeaveConnection *aConnection
)

จัดการการยืนยันคำขอผูก

รายละเอียด
พารามิเตอร์
[in] aConnection
ตัวชี้การใช้งาน WeaveConnection ไปยังเป้าหมายที่มีผลผูกพัน

เสร็จสมบูรณ์ยืนยัน

void CompleteConfirm(
  StatusReport & aReport
)

จัดการกับความล้มเหลวของการร้องขอการผูก

รายละเอียด
พารามิเตอร์
[in] aReport
การอ้างอิงไปยังอ็อบเจ็กต์ StatusReport ที่อธิบายความล้มเหลว

เสร็จสมบูรณ์ยืนยัน

void CompleteConfirm(
  void
)

จัดการการยืนยันคำขอผูก

กรอกคำขอ

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

ร้องขอให้เสร็จสิ้นการผูกมัด

ความสำเร็จของการผูกพันเป็นอย่างน้อยสำหรับผูกที่กำหนด TCP ดำเนินการด้วยความเคารพโดยเฉพาะอย่างยิ่ง ProtocolEngine วัตถุซึ่งให้การเข้าถึงอินสแตนซ์ ExchangeManager

รายละเอียด
พารามิเตอร์
[in] aEngine
ตัวชี้ไปยัง ProtocolEngine วัตถุในนามของซึ่งดำเนินการเสร็จสมบูรณ์จะถูกดำเนินการ
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INCORRECT_STATE
หากการผูกเสร็จสิ้นแล้ว
WEAVE_ERROR_NO_MEMORY
หากจำเป็นต้องเชื่อมต่อแต่ไม่มีให้
คืนสินค้า
มิฉะนั้นใด ๆ WEAVE_ERROR กลับในขณะที่พยายามที่จะเชื่อมต่อ

เชื่อมต่อ

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

ทำการผูก TCP โดยให้การเชื่อมต่อเสร็จสมบูรณ์

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

รายละเอียด
พารามิเตอร์
[in] aConnection
ตัวชี้ไปยัง WeaveConnection ใช้ในการดำเนินการที่มีผลผูกพัน
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INCORRECT_STATE
หากการผูกมีการเชื่อมต่ออยู่แล้ว
WEAVE_ERROR_INVALID_ARGUMENT
หากการเชื่อมต่อเป็น NULL

จบ

void Finalize(
  void
)

"ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน

ผูกอาจมีสถานะที่ต้องทำความสะอาดเช่นการปิดการเชื่อมต่อซึ่งจะถูกจัดการโดย Uncomplete () วิธีการนอกเหนือไปจากรัฐที่จะถูกล้างออกเพียงเพื่อสถานะเริ่มต้นโดย ฟรี () วิธีการ วิธีนี้ ส่วนใหญ่เพื่อความสะดวก เรียกทั้งสองอย่าง

ดูสิ่งนี้ด้วย:
จบ(WEAVE_ERROR)

จบ

void Finalize(
  WEAVE_ERROR aErr
)

"ไม่สมบูรณ์" ผูกมัดและปลดปล่อยมัน

ผูกอาจมีสถานะที่ต้องทำความสะอาดเช่นการปิดการเชื่อมต่อซึ่งจะถูกจัดการโดย Uncomplete () วิธีการนอกเหนือไปจากรัฐที่จะถูกล้างออกเพียงเพื่อสถานะเริ่มต้นโดย ฟรี () วิธีการ วิธีนี้ ส่วนใหญ่เพื่อความสะดวก เรียกทั้งสองอย่าง

รายละเอียด
พารามิเตอร์
[in] aErr
รหัสข้อผิดพลาดนี้ระบุสาเหตุของคำขอนี้ หากไม่ใช่ WEAVE_NO_ERROR การเชื่อมต่อ TCP อาจถูกยกเลิก
ดูสิ่งนี้ด้วย:
จบ(เป็นโมฆะ)

ฟรี

void Free(
  void
)

ล้างสถานะการผูก

คืนสถานะการผูกมัดทั้งหมดกลับเป็นสถานะเดิมโดยไม่มีเงื่อนไข

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

ผลิต ExchangeContext วัตถุจาก เข้าเล่ม

รายละเอียด
พารามิเตอร์
[in] aExchangeMgr
ตัวชี้ไปยังตัวจัดการการแลกเปลี่ยนเพื่อขอบริบท
[in] aAppState
ตัวชี้เป็นโมฆะไปยังออบเจ็กต์สถานะของแอปพลิเคชันที่จะเก็บไว้ในบริบทการแลกเปลี่ยนเพื่อใช้ในภายหลัง
คืนสินค้า
ตัวชี้ไปยัง ExchangeContext วัตถุหรือ NULL ในความล้มเหลว

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

จัดการกับความล้มเหลวของการผูกมัด

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

รายละเอียด
พารามิเตอร์
[in] aReport
การอ้างอิงไปยัง StatusReport ที่อธิบายสิ่งที่ผิดพลาด
ดูสิ่งนี้ด้วย:
CompleteConfirm (StatusReport & aReport)

ในนั้น

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

เริ่มต้น ผูกพัน ที่มีเพียงหมายเลขโหนด

ซึ่งส่งผลให้มีผลผูกพันกับการขนส่งเริ่มต้นที่กำหนดค่าไว้

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงถึง ID 64 บิตของเป้าหมายการโยง
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากการผูกมัดนั้นไม่ได้กำหนดไว้

ในนั้น

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

เริ่มต้น การผูก วัตถุตามรหัสเพียร์และการขนส่ง

รายละเอียด
พารามิเตอร์
[in] aPeerNodeId
การอ้างอิงถึงตัวระบุโหนด 64 บิตของเป้าหมายการโยง
[in] aTransport
ข้อกำหนดการขนส่ง จาก WeaveTransportOption
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากการผูกมัดนั้นไม่ได้กำหนดไว้

ในนั้น

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

เริ่มต้น ผูก วัตถุปลายทางบริการ

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

รายละเอียด
พารามิเตอร์
[in] aServiceEpt
การอ้างอิงถึงตัวระบุ 64 บิตสำหรับจุดสิ้นสุด Weave Service ที่น่าสนใจ
[in] aServiceMgr
ตัวชี้ไปยังอินสแตนซ์ตัวจัดการบริการเพื่อใช้ในการค้นหาระดับบริการและเชื่อมต่อ
[in] aAuthMode
โหมดการรับรองความถูกต้องเพื่อใช้ในการเชื่อมต่อ
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากการผูกมัดนั้นไม่ได้กำหนดไว้

ในนั้น

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

เริ่มต้น ผูก วัตถุกับ WeaveConnection

รายละเอียด
พารามิเตอร์
[in] aConnection
ตัวชี้ไปยัง WeaveConnection เพื่อใช้เป็นพื้นฐานสำหรับการผูกพัน ..
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากการผูกมัดนั้นไม่ได้กำหนดไว้

เสร็จสมบูรณ์

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 () เป็นส่วนหนึ่งของการทำความสะอาดในข้อผิดพลาด

รายละเอียด
พารามิเตอร์
[in] aErr
หากไม่ใช่ WEAVE_NO_ERROR การเชื่อมต่อที่มีอยู่ หากมี จะถูกยกเลิกแทนที่จะปิดอย่างงดงาม
ดูสิ่งนี้ด้วย:
UncompleteRequest (เป็นโมฆะ)

~ผูกพันB

virtual  ~Binding(
  void
)

destructor สำหรับ การผูก วัตถุ

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