nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

คลาสพื้นฐาน Abstract สำหรับไคลเอ็นต์ WDM เฉพาะแอปพลิเคชัน

สรุป

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

ตัวแฮนเดิลสำหรับงานที่เกี่ยวข้องกับการสมัครใช้บริการจะทำหน้าที่เป็นอะแดปเตอร์แบบบางเหนือออบเจ็กต์ ClientNotifier เป็นหลัก ผู้ติดตั้งใช้งานคลาสย่อยควรเรียกใช้เมธอด Super-Class ที่เกี่ยวข้อง เพื่อเปลี่ยนข้อเหวี่ยงของตัวจัดการการสมัครใช้บริการ

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

การสืบทอด

รับค่าจาก
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

ผู้ผลิตและผู้ทำลาย

DMClient(void)
ตัวสร้างเริ่มต้นสำหรับออบเจ็กต์ DMClient
~DMClient(void)
ตัวทำลายสำหรับออบเจ็กต์ DMClient
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
ขอมุมมองข้อมูลที่เผยแพร่
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
ขอมุมมองข้อมูลเกี่ยวกับผู้เผยแพร่โฆษณาเริ่มต้น
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
ขออัปเดตข้อมูลที่เผยแพร่แล้ว
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
ขออัปเดตข้อมูลในผู้เผยแพร่โฆษณาเริ่มต้น

แอตทริบิวต์ที่ได้รับการปกป้อง

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

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

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
คำขอยกเลิกธุรกรรมที่กำลังดำเนินการ
Clear(void)
virtual void
ล้างสถานะภายในที่เชื่อมโยงกับออบเจ็กต์ DMClient
Finalize(void)
virtual void
ปิด DMClient ที่กำลังทำงานอยู่
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
จัดการ "การใช้งานให้เสร็จสิ้น" ของการเชื่อมโยงที่ใช้งานโดยไคลเอ็นต์

ฟังก์ชันที่มีการป้องกัน

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

ขอมุมมองข้อมูลที่เผยแพร่

ขอมุมมองข้อมูลที่มีอยู่และจัดการโดยผู้เผยแพร่โฆษณาระยะไกลที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aDestinationId
การอ้างอิงรหัสโหนด 64 บิตของผู้เผยแพร่โฆษณาระยะไกล
[in] aPathList
การอ้างอิงไปยังออบเจ็กต์ ReferencedTLVData ที่มีรายการเส้นทางที่เข้ารหัส TLV ซึ่งระบุข้อมูลที่ขอ
[in] aTxnId
ตัวระบุสำหรับธุรกรรม WDM ที่ตั้งค่าไว้เพื่อจัดการการดำเนินการดูนี้
[in] aTimeout
เวลาสูงสุดเป็นมิลลิวินาทีในการรอการตอบกลับการดู
แสดงผลค่า
WEAVE_NO_ERROR
ความสำเร็จ
WEAVE_ERROR_NO_MEMORY
ในกรณีที่ระบบจัดสรรธุรกรรมไม่ได้
การส่งคืน
ไม่เช่นนั้นแล้ว WEAVE_ERROR จะแสดงถึงความล้มเหลวในการเริ่มต้นหรือเริ่มต้นธุรกรรม

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

ขอมุมมองข้อมูลเกี่ยวกับผู้เผยแพร่โฆษณาเริ่มต้น

ขอมุมมองข้อมูลที่มีอยู่และจัดการโดยผู้เผยแพร่โฆษณา "เริ่มต้น" เช่น ผู้เผยแพร่โฆษณารายแรก (หรือเพียงรายเดียว) ในตารางการเชื่อมโยงของลูกค้า

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

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

ขออัปเดตข้อมูลที่เผยแพร่แล้ว

ขอให้ผู้เผยแพร่โฆษณาระยะไกลอัปเดตข้อมูลในการจัดการ

รายละเอียด
พารามิเตอร์
[in] aDestinationId
การอ้างอิงรหัสโหนด 64 บิตของผู้เผยแพร่โฆษณาระยะไกลที่มีการส่งคำขอ
[in] aDataList
การอ้างอิงไปยังออบเจ็กต์ ReferencedTLVData ที่มีรายการข้อมูลที่เข้ารหัส TLV พร้อมการนำเสนอการอัปเดต รวมถึงเส้นทางที่จะใช้การอัปเดต
[in] aTxnId
ตัวระบุสำหรับธุรกรรมที่ตั้งค่าให้จัดการคำขออัปเดต
[in] aTimeout
เวลาสูงสุดเป็นมิลลิวินาทีในการรอรายงานสถานะที่เกี่ยวข้อง
การส่งคืน
WEAVE_NO_ERROR ที่สำเร็จ หรือ WEAVE_ERROR_NO_MEMORY หากไม่สามารถจัดสรรธุรกรรมการอัปเดตได้ มิฉะนั้น แสดงผล WEAVE_ERROR ซึ่งแสดงว่าการอัปเดตล้มเหลว

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

ขออัปเดตข้อมูลในผู้เผยแพร่โฆษณาเริ่มต้น

ขอให้ผู้เผยแพร่โฆษณาระยะไกลอัปเดตข้อมูลในการจัดการ เวอร์ชันนี้จะส่งคำขอไปยังผู้เผยแพร่โฆษณาที่เป็นเป้าหมายของการเชื่อมโยงเริ่มต้นของลูกค้า

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

แอตทริบิวต์ที่ได้รับการปกป้อง

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

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

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

คำขอยกเลิกธุรกรรมที่กำลังดำเนินการ

วิธีการนี้จะไม่สร้างการจราจรของข้อมูลในเครือข่าย แต่เพียงแค่ปล่อยทรัพยากรที่จัดสรรไว้ให้กับธุรกรรมที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aTxnId
หมายเลขธุรกรรมที่จะยกเลิก หากมีการระบุ kTransactionIdNotSpecified ธุรกรรมทั้งหมดจะถูกยกเลิก
[in] aError
WEAVE_ERROR ที่จะรายงานเมื่อยกเลิกธุรกรรม
การส่งคืน
WEAVE_NO_ERROR ที่สำเร็จ หรือ WEAVE_ERROR ที่แสดงถึงข้อผิดพลาดในการยกเลิกธุรกรรม

ล้าง

virtual void Clear(
  void
)

ล้างสถานะภายในที่เชื่อมโยงกับออบเจ็กต์ DMClient

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

ดูเพิ่มเติม:
Finalize()

DMClient

 DMClient(
  void
)

ตัวสร้างเริ่มต้นสำหรับออบเจ็กต์ DMClient

ล้างสถานะภายในทั้งหมด DMClient ต้องมีการเริ่มต้นเพิ่มเติมด้วย Init() ก่อนใช้งาน

ทำให้สิ้นสุด

virtual void Finalize(
  void
)

ปิด DMClient ที่กำลังทำงานอยู่

ล้างสถานะการทำงานทั้งหมดที่เกี่ยวข้องกับไคลเอ็นต์และนำการสมัครใช้บริการที่เกี่ยวข้องทั้งหมดออกจากตัวแจ้ง หลังจากเรียก Finalize() แล้ว DMClient อาจเริ่มต้นอีกครั้งได้ง่ายๆ โดยเรียก Init() จากนั้นตัวทำลาย DMClient จะเรียกใช้ Finalize() แต่ก็อาจเรียกใช้ได้ในกรณีที่ต้องทำความสะอาด DMClient เช่น ในกรณีที่เครื่องล้มเหลวหรือปิดเครื่องชั่วคราว แต่อาจต้องสร้างอีกครั้งในภายหลัง

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

จัดการ "การใช้งานให้เสร็จสิ้น" ของการเชื่อมโยงที่ใช้งานโดยไคลเอ็นต์

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

รายละเอียด
พารามิเตอร์
[in] aBinding
ตัวชี้ไปยังการเชื่อมโยงที่ไม่สมบูรณ์
[in] aReport
ข้อมูลอ้างอิงรายงานสถานะที่ให้เหตุผลของการดำเนินการที่ไม่สำเร็จ

~ไคลเอ็นต์ DM

virtual  ~DMClient(
  void
)

ตัวทำลายสำหรับออบเจ็กต์ DMClient

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

ฟังก์ชันที่มีการป้องกัน

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)