nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

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

Objek ini mengenkode payload UpdateRequest dan PartialUpdateRequest WDM.

Ringkasan

Perhatikan bahwa kedua permintaan memiliki format yang sama; hanya dibedakan berdasarkan jenis pesan, yang berada di luar cakupan objek ini.

Encoding dilakukan secara sinkron dengan metode EncodeRequest. Satu-satunya metode publik lainnya adalah InsertInProgressUpdateItem, yang dipanggil oleh SchemaEngine saat perlu mendorong kamus kembali ke antrean.

Konstruktor dan Destruktor

UpdateEncoder()
~UpdateEncoder()

Fungsi publik

EncodeRequest(Context & aContext)
Mengenkode payload permintaan Update WDM.
InsertInProgressUpdateItem(const TraitPath & aItem)
Tambahkan jalur pribadi dalam daftar jalur yang sedang berlangsung, memasukkannya setelah jalur yang dienkode saat ini.

Struct

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

Struktur ini menyimpan argumen I/O ke metode EncodeRequest.

Fungsi publik

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

Mengenkode payload permintaan Update WDM.

Lihat UpdateEncoder::Context. Panjang data PacketBuffer hanya diperbarui jika berhasil, tetapi konten buffer tidak dipertahankan.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Minimal satu DataElement dienkode dalam DataList payload.
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement pertama tidak dapat dimuat dalam payload.
WEAVE_ERROR_INVALID_ARGUMENT
aContext diinisialisasi dengan nilai yang tidak valid.
other
Error lain dari objek tingkat yang lebih rendah (TLVWriter, SchemaEngine, dll.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

Tambahkan jalur pribadi dalam daftar jalur yang sedang berlangsung, memasukkannya setelah jalur yang dienkode saat ini.

Metode ini dimaksudkan untuk dipanggil oleh SchemaEngine saat melintasi hierarki skema dan perlu mendorong kamus kembali ke daftar.

Detail
Parameter
[in] aItem
TraitPath yang akan dimasukkan dalam daftar yang dienkode.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Item berhasil disisipkan.
WEAVE_NO_MEMORY
Tidak ada ruang di TraitPathStore untuk menyisipkan item.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()