nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

#include <src/lib/profiles/data-management/Current/NotificationEngine.h>

วิธีนี้เป็นตัวช่วยในการเขียนการแจ้งและสรุปโครงสร้างและโครงสร้างของข้อความจากผู้บริโภค

สรุป

นี่เป็นเวอร์ชันกะทัดรัดของคลาสที่คล้ายกันซึ่งมีให้ใน MessageDef.cpp ที่มีเป้าหมายที่จะไวต่อความต้องการ Flash และ RAM ของอุปกรณ์

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

Checkpoint(TLV::TLVWriter & aPoint)
จุดตรวจสถานะคำขอลงใน TLVWriter
EndDataList()
สิ้นสุดการสร้างอาร์เรย์รายการข้อมูล
EndEventList()
สิ้นสุดการสร้างรายการเหตุการณ์
EndNotifyRequest()
สิ้นสุดการสร้างการแจ้งเตือน
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
เริ่มต้นเครื่องมือสร้าง
MoveToState(NotifyRequestBuilderState aDesiredState)
ฟังก์ชันการเปลี่ยนสถานะหลัก
Rollback(TLV::TLVWriter & aPoint)
ย้อนกลับสถานะคำขอเป็น TLVWriter ที่มีการตรวจสอบ
StartDataList(void)
เริ่มการสร้างอาร์เรย์รายการข้อมูล
StartEventList()
เริ่มการสร้างรายการเหตุการณ์
StartNotifyRequest()
เริ่มสร้างการแจ้งเตือน
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
สำหรับเส้นทางที่มีลักษณะ ให้เขียนองค์ประกอบข้อมูลที่เชื่อมโยงกับเส้นทางนั้น

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

จุดตรวจ

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

จุดตรวจสถานะคำขอลงใน TLVWriter

รายละเอียด
พารามิเตอร์
[out] aPoint
นักเขียนที่จะคอยแสดงสถานะของนักเขียน TLV
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว

EndDataList

WEAVE_ERROR EndDataList()

สิ้นสุดการสร้างอาร์เรย์รายการข้อมูล

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่คอนเทนเนอร์ DataList
other
ไม่สามารถสร้างส่วนท้ายของรายการข้อมูล

EndEventList

WEAVE_ERROR EndEventList()

สิ้นสุดการสร้างรายการเหตุการณ์

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่คอนเทนเนอร์ EventList
other
ไม่สามารถสร้างส่วนท้ายของรายการข้อมูล

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

สิ้นสุดการสร้างการแจ้งเตือน

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่ Notifyคอนเทนเนอร์
other
สร้างส่วนท้ายของการแจ้งเตือนไม่ได้

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

เริ่มต้นเครื่องมือสร้าง

ควรเรียกเพียงครั้งเดียว

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
other
เริ่มต้นเครื่องมือสร้างไม่ได้

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

ฟังก์ชันการเปลี่ยนสถานะหลัก

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

รายละเอียด
พารามิเตอร์
aDesiredState
สถานะที่ต้องการซึ่งคำขอควรเปลี่ยนไป
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_NO_MEMORY
เปลี่ยนสถานะเป็นสถานะไม่ได้เนื่องจากหน่วยความจำไม่เพียงพอ
WEAVE_ERROR_INCORRECT_STATE
ความเสียหายของเครื่องสถานะภายใน
other
เมื่อเครื่องสถานะบันทึกสถานะในบัฟเฟอร์ไม่ได้ อาจบ่งชี้ถึงข้อบกพร่องในการออกแบบแทนที่จะเป็นปัญหารันไทม์

ย้อนกลับ

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

ย้อนกลับสถานะคำขอเป็น TLVWriter ที่มีการตรวจสอบ

รายละเอียด
พารามิเตอร์
[in] aPoint
นักเขียนที่จับภาพรัฐในช่วงใดเวลาหนึ่งในอดีต
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว

StartDataList

WEAVE_ERROR StartDataList(
  void
)

เริ่มการสร้างอาร์เรย์รายการข้อมูล

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่คอนเทนเนอร์ "แจ้งเตือน"
other
ไม่สามารถสร้างจุดเริ่มต้นของรายการข้อมูล

StartEventList

WEAVE_ERROR StartEventList()

เริ่มการสร้างรายการเหตุการณ์

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่คอนเทนเนอร์ "แจ้งเตือน"
other
ไม่สามารถสร้างจุดเริ่มต้นของรายการข้อมูล

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

เริ่มสร้างการแจ้งเตือน

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
WEAVE_ERROR_INCORRECT_STATE
หากคำขอไม่ได้อยู่ที่ระดับบนสุดของบัฟเฟอร์
other
สร้างส่วนท้ายของการแจ้งเตือนไม่ได้

WriteDataElement

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

สำหรับเส้นทางของลักษณะเฉพาะ ให้เขียนองค์ประกอบข้อมูลที่เชื่อมโยงกับเส้นทางนั้น

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

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
other
ไม่สามารถเรียกและเขียนองค์ประกอบข้อมูลได้