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 nilainya null atau tidak ada, dapatkan data dari sumber trait 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 mempertimbangkan handle jalur ke node, penulis TLV, dan boolean yang menunjukkan apakah nilainya null atau tidak ada, dapatkan data dari sumber trait 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 bernilai null atau tidak ada, TDM tidak akan memanggil GetData untuk turunannya.

Fungsi ini hanya akan dipanggil untuk handle yang bersifat nullable, opsional, ephemeral, atau leaf. Ekspektasinya adalah bahwa setiap karakteristik dengan handle yang mengaktifkan opsi tersebut akan mengimplementasikan logika yang sesuai untuk mengisi aIsNull dan aIsPresent.

Detail
Parameter
[in] aHandle
PropertyPathHandle yang dimaksud.
[in] aTagToWrite
Tag yang akan ditulis untuk aHandle.
[in,out] aWriter
Penulis akan menuliskan elemen TLV.
[out] aIsNull
Apakah Nama sebutan channel dibatalkan? Jika ya, TDM akan menulis elemen null. Jika Handle bukan leaf, TDM akan melewati turunannya.
[out] aIsPresent
Apakah ada Nama sebutan channel? Jika tidak dan jika aHandle bukan leaf, TDM akan melewati jalur dan turunannya.
Nilai Pengembalian
WEAVE_NO_ERROR
Setelah 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 ancestornya dengan hasil operasi update. Perubahan dapat bersifat bersyarat atau tidak. Pembaruan data bersyarat akan hilang jika salinan lokal instance karakteristik tidak lagi sinkron dengan penayang karena telah dimutasi oleh penayang itu sendiri atau klien lain. Mutasi bersyarat dan tidak bersyarat tidak didukung secara bersamaan dalam instance karakteristik yang sama.

Detail
Parameter
[in] apSubClient
Pointer ke SubscriptionClient yang mengelola sink ini.
[in] aPropertyHandle
Semua PropertyPathHandle yang valid untuk instance Trait ini.
[in] aIsConditional
True untuk update bersyarat; false jika tidak.
Nilai Pengembalian
WEAVE_NO_ERROR
jika handle properti berhasil ditambahkan ke kumpulan properti untuk dikirim ke pemilik karakteristik.
WEAVE_ERROR_INVALID_ARGUMENT
jika handle atau pointer SubscriptionClient tidak valid.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
jika instance ciri sudah diperbarui dengan kondisionalitas 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 bergantung pada kegagalan.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Buka kunci

void Unlock(
  SubscriptionClient *apSubClient
)