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

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

ซึ่งจะช่วยให้ชั้นเรียนผู้ช่วยเขียนการแจ้งเตือนและตัดโครงสร้างและโครงสร้างข้อความจากผู้บริโภคออกไป

สรุป

เงื่อนไขนี้เป็นเวอร์ชันกะทัดรัดมากกว่าซึ่งมีอยู่ใน MessageDef.cpp ซึ่งมีจุดประสงค์เพื่อไวต่อความต้องการใช้แฟลชและ 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
สําเร็จแล้ว

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

WEAVE_ERROR EndDataList()

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

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

รายการเหตุการณ์

WEAVE_ERROR EndEventList()

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

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

สิ้นสุดคําขอ

WEAVE_ERROR EndNotifyRequest()

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

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

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

เริ่ม

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

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

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

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

สถานะการย้าย

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
สําเร็จแล้ว

รายการข้อมูลเริ่มต้น

WEAVE_ERROR StartDataList(
  void
)

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

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

รายการเริ่มต้น

WEAVE_ERROR StartEventList()

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

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

เริ่มคําขอ

WEAVE_ERROR StartNotifyRequest()

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

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

เขียนองค์ประกอบข้อมูล

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

โดยระบุเส้นทางของข้อมูลโดยเขียนองค์ประกอบข้อมูลที่เชื่อมโยงกับเส้นทางนั้น

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

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