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

Ringkasan

Inheritance

Mewarisi dari:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Konstruktor dan Destruktor

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Fungsi publik

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Dengan mempertimbangkan handle jalur ke node, penulis TLV, dan boolean yang menunjukkan apakah nilai null atau tidak ada, dapatkan data dari sumber karakteristik yang akan membuat notifikasi.
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)
Mendeklarasikan bahwa PropertyPathHandle yang diberikan memiliki modifikasi lokal.
Unlock(SubscriptionClient *apSubClient)
void

Fungsi publik

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

Dengan handle jalur ke node, penulis TLV, dan boolean yang menunjukkan apakah nilai null atau tidak ada, dapatkan data dari sumber karakteristik yang akan membuat notifikasi.

Jika handle jalur bukan node daun, TDM akan menangani penulisan nilai ke penulis (seperti membuka container, membatalkan struct, dll.). Jika node non-leaf null atau tidak ada, TDM tidak akan memanggil GetData untuk turunannya.

Fungsi ini hanya akan dipanggil untuk nama sebutan channel yang bersifat nullable, opsional, efemeral, atau daun. Diharapkan setiap karakteristik dengan nama sebutan channel yang mengaktifkan opsi tersebut akan menerapkan logika yang sesuai untuk mengisi aIsNull dan aIsPresent.

Detail
Parameter
[in] aHandle
PropertyPathHandle yang dimaksud.
[in] aTagToWrite
Tag yang akan ditulis untuk nama sebutan channel.
[in,out] aWriter
Penulis akan menulis elemen TLV.
[out] aIsNull
Apakah aHandle dibatalkan? Jika ya, TDM akan menulis elemen {i>null<i}. Jika aHandle bukan daun, TDM akan melewati turunannya.
[out] aIsPresent
Apakah aHandle tersedia? Jika tidak, dan jika aHandle bukan daun, TDM akan melewati jalur tersebut dan turunannya.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Berhasil.
other
Tidak dapat mengambil data dan menulisnya ke penulis.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Kunci

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
)

Mendeklarasikan bahwa PropertyPathHandle yang diberikan memiliki modifikasi lokal.

NotificationEngine tidak akan mengganti handle dan turunannya hingga permintaan update diproses. Aplikasi akan menerima callback kEvent_OnUpdateComplete untuk handle ini atau untuk salah satu ancestor-nya dengan hasil operasi update. Perubahan dapat bersifat bersyarat atau tidak. Update data bersyarat akan hilang jika salinan lokal instance karakteristik tidak lagi disinkronkan dengan penayang karena telah diubah oleh penayang itu sendiri atau oleh klien lain. Mutasi bersyarat dan tanpa syarat tidak didukung secara bersamaan dalam instance karakteristik yang sama.

Detail
Parameter
[in] apSubClient
Pointer ke SubscriptionClient yang mengelola sink ini.
[in] aPropertyHandle
Setiap PropertyPathHandle yang valid untuk instance Trait ini.
[in] aIsConditional
True untuk update bersyarat; false jika sebaliknya.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
jika nama sebutan channel berhasil ditambahkan ke kumpulan properti yang akan dikirim ke pemilik karakteristik.
WEAVE_ERROR_INVALID_ARGUMENT
jika nama sebutan channel atau pointer SubscriptionClient tidak valid.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
jika instance trait sudah diupdate dengan kondisional yang berlawanan.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
jika aIsConditional bernilai true tetapi instance trait tidak memiliki versi yang valid.
WEAVE_ERROR_WDM_PATH_STORE_FULL
jika tidak ada memori untuk menyimpan jalur.
Other
kode WEAVE_ERROR yang bergantung pada kegagalan.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Buka kunci

void Unlock(
  SubscriptionClient *apSubClient
)