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

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

Objek ini mengenkode payload UpdateRequest dan PartialUpdateRequest WDM.

Ringkasan

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

Encoding dilakukan secara sinkron oleh 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, menyisipkannya setelah jalur 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 Pengembalian
WEAVE_NO_ERROR
Setidaknya satu DataElement dienkode dalam DataList payload.
WEAVE_ERROR_BUFFER_TOO_SMALL
DataElement pertama tidak muat dalam payload.
WEAVE_ERROR_INVALID_ARGUMENT
aContext diinisialisasi dengan nilai yang tidak valid.
other
Error lain dari objek tingkat lebih rendah (TLVWriter, SchemaEngine, dll.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

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

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

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

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()