nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

สรุป

การสืบทอด

รับค่าจาก:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

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

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

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

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
รับข้อมูลจากแหล่งที่มาลักษณะที่จะสร้างการแจ้งเตือนโดยพิจารณาจากแฮนเดิลเส้นทางไปยังโหนด ผู้เขียน TLV และบูลีนที่ระบุว่าค่านั้นเป็น Null หรือไม่
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
ประกาศว่า PropertyPathHandle ที่กำหนดมีการแก้ไขเฉพาะที่
Unlock(SubscriptionClient *apSubClient)
void

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

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

รับข้อมูลจากแหล่งที่มาลักษณะที่จะสร้างการแจ้งเตือนโดยพิจารณาจากแฮนเดิลเส้นทางไปยังโหนด ผู้เขียน TLV และบูลีนที่ระบุว่าค่านั้นเป็น Null หรือไม่

หากแฮนเดิลเส้นทางไม่ใช่โหนด Leaf TDM จะจัดการการเขียนค่าไปยังผู้เขียน (เช่น การเปิดคอนเทนเนอร์ การทำให้โครงสร้างเป็นโมฆะ เป็นต้น) หากโหนดที่ไม่ใช่ Leaf เป็นค่าว่างหรือไม่มี TDM จะไม่เรียกใช้ GetData สำหรับย่อย

ระบบจะเรียกใช้ฟังก์ชันนี้สำหรับแฮนเดิลที่ไม่มีข้อมูล ไม่บังคับ ชั่วคราว หรือ Leaf เราคาดว่าลักษณะใดก็ตามที่มีแฮนเดิลซึ่งเปิดใช้ตัวเลือกเหล่านั้นจะใช้ตรรกะที่เหมาะสมเพื่อป้อนข้อมูล aIsNull และ aIsOffer

รายละเอียด
พารามิเตอร์
[in] aHandle
PropertyPathHandle ที่เป็นประเด็น
[in] aTagToWrite
แท็กที่จะเขียนสำหรับ aHandle
[in,out] aWriter
ผู้เขียนที่จะเขียนองค์ประกอบ TLV
[out] aIsNull
แฮนเดิลเป็นโมฆะใช่ไหม หากมี TDM จะเขียนองค์ประกอบที่เป็นค่าว่าง หาก aHandle ไม่ใช่ Leaf TDM จะข้ามสคริปต์ย่อย
[out] aIsPresent
มีแฮนเดิลไหม หากไม่ใช่ และหาก aHandle ไม่ใช่ Leaf TDM จะข้ามเส้นทางและองค์ประกอบย่อยของ TDM
ผลลัพธ์
WEAVE_NO_ERROR
สำเร็จแล้ว
other
ดึงข้อมูลและเขียนลงในผู้เขียนไม่ได้

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

ล็อก

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

ประกาศว่า PropertyPathHandle ที่กำหนดมีการแก้ไขเฉพาะที่

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

รายละเอียด
พารามิเตอร์
[in] apSubClient
ตัวชี้ไปยัง SubscriptionClient ที่จัดการซิงก์นี้
[in] aPropertyHandle
PropertyPathHandle ที่ถูกต้องสำหรับอินสแตนซ์ Trait นี้
[in] aIsConditional
True สำหรับการอัปเดตแบบมีเงื่อนไข เท็จ หากไม่เป็นเช่นนั้น
ผลลัพธ์
WEAVE_NO_ERROR
หากเพิ่มแฮนเดิลพร็อพเพอร์ตี้ในชุดพร็อพเพอร์ตี้ที่จะส่งไปยังเจ้าของลักษณะสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากแฮนเดิลหรือเคอร์เซอร์ SubscriptionClient ไม่ถูกต้อง
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
หากอินสแตนซ์ของลักษณะได้รับการอัปเดตด้วยเงื่อนไขที่ตรงกันแล้ว
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
หาก aIsConditional เป็นจริง แต่อินสแตนซ์เทรดไม่มีเวอร์ชันที่ถูกต้อง
WEAVE_ERROR_WDM_PATH_STORE_FULL
หากไม่มีหน่วยความจำให้เก็บเส้นทาง
Other
รหัส WEAVE_ERROR โดยขึ้นอยู่กับความล้มเหลว

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ปลดล็อก

void Unlock(
  SubscriptionClient *apSubClient
)