nl::Weave::Profiles::SoftwareUpdate::ImageQuery

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

Class untuk mendukung pembuatan dan decoding pesan kueri gambar.

Ringkasan

Bingkai kueri gambar memiliki bentuk berikut melalui kabel

Panjang Nama Kolom
1 byte kontrol frame
6 byte spesifikasi produk
variabel spesifikasi versi
2..4 byte daftar jenis integritas
2..5 byte perbarui daftar skema
variabel spesifikasi lokalitas (opsional)
8 byte ID node target
variabel data khusus vendor (opsional)
di mana isian {i>frame control<i} memiliki isian bit sebagai berikut:

Bit Arti
0 1 - terdapat data spesifik per vendor, 0 - tidak ada
1 1 - ada spesifikasi lokal, 0 - tidak ada
2 1 - terdapat id node target, 0 - tidak ada
3..7 Direservasi
ImageQuery, karena pembacaan struktur sedikit berbeda dari representasi yang sedang beroperasi. Secara khusus, versi dan lokalitas adalah c-string yang dihentikan null (bukan tuple (panjang, karakter)) dan kedua item opsional direpresentasikan sebagai pointer nullable sehingga tidak ada boolean yang terpisah untuk diperiksa.

Konstruktor dan Destruktor

ImageQuery()
Konstruktor default untuk ImageQuery.

Atribut publik

integrityTypes
Jenis integritas yang didukung oleh perangkat.
localeSpec
String UTF-8 dengan panjang variabel yang berisi lokalitas POSIX yang berlaku di perangkat tempat kueri gambar dibuat.
packageSpec
String UTF-8 panjang variabel yang berisi string spesifikasi paket khusus vendor.
productSpec
Spesifikasi produk yang menjelaskan perangkat yang membuat kueri gambar.
targetNodeId
uint64_t
ID node opsional perangkat yang digunakan untuk membuat kueri.
theMetaData
Bidang data khusus vendor panjangnya bervariasi dan menempati sisa payload pesan Weave, di luar bidang yang dijelaskan di atas.
updateSchemes
Perbarui skema (protokol download) yang didukung perangkat.
version
String UTF-8 panjang variabel yang berisi versi software perangkat yang ditentukan oleh vendor yang kuerinya akan dibuat.

Fungsi publik

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Lakukan inisialisasi objek ImageQuery secara eksplisit dengan nilai yang disediakan.
operator==(const ImageQuery &) const
bool
Operator kesetaraan.
pack(PacketBuffer *)
Lakukan serialisasi ImageQuery yang mendasarinya ke dalam PacketBuffer yang disediakan.
print(void)
void

Fungsi statis publik

parse(PacketBuffer *, ImageQuery &)
Melakukan deserialisasi pesan kueri gambar yang disediakan di PacketBuffer ke dalam ImageQuery yang disediakan.

Atribut publik

integrityTypes

IntegrityTypeList integrityTypes

Jenis integritas yang didukung oleh perangkat.

localeSpec

ReferencedString localeSpec

String UTF-8 dengan panjang variabel yang berisi lokalitas POSIX yang berlaku di perangkat tempat kueri gambar dibuat.

Konten string harus sesuai dengan format ID lokalitas POSIX, seperti yang ditentukan dalam ISO/IEC 15897, mis. en_AU.UTF-8 untuk bahasa Inggris Australia.

packageSpec

ReferencedString packageSpec

String UTF-8 panjang variabel yang berisi string spesifikasi paket khusus vendor.

Isi kolom ini menjelaskan jenis container yang diinginkan untuk image software, seperti 'rpm', 'deb', 'tgz', 'elf', dll. (CATATAN: Kolom ini tidak digunakan dalam implementasi protokol Nest)

productSpec

ProductSpec productSpec

Spesifikasi produk yang menjelaskan perangkat yang membuat kueri gambar.

targetNodeId

uint64_t targetNodeId

ID node opsional perangkat yang digunakan untuk membuat kueri.

Kolom ID node target bersifat opsional. Jika tidak ada, ID node target untuk kueri secara implisit adalah node yang merupakan sumber pesan kueri gambar.

Kolom ID node target biasanya digunakan dalam kasus ketika node yang merupakan sumber pesan IMAGE QUERY berfungsi sebagai proxy update software untuk node lain.

theMetaData

ReferencedTLVData theMetaData

Bidang data khusus vendor panjangnya bervariasi dan menempati sisa payload pesan Weave, di luar bidang yang dijelaskan di atas.

Kolom ini mengenkode informasi khusus vendor tentang perangkat tempat kueri dibuat. Kolom data khusus vendor bersifat opsional. Jika ada, kolom tersebut memiliki bentuk struktur yang dienkode dengan TLV anonim. Tag yang disajikan dalam struktur ini harus merupakan tag khusus profil yang sepenuhnya memenuhi syarat.

updateSchemes

UpdateSchemeList updateSchemes

Perbarui skema (protokol download) yang didukung perangkat.

versi

ReferencedString version

String UTF-8 panjang variabel yang berisi versi software perangkat yang ditentukan oleh vendor yang kuerinya akan dibuat.

Panjangnya harus 32 atau lebih kecil.

Fungsi publik

ImageQuery

 ImageQuery()

Konstruktor default untuk ImageQuery.

ImageQuery dapat diisi dengan memanggil init() atau dengan melakukan deserialisasi objek dari pesan.

init

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

Lakukan inisialisasi objek ImageQuery secara eksplisit dengan nilai yang disediakan.

Detail
Parameter
[in] aProductSpec
Spesifikasi produk.
[in] aVersion
Versi software yang saat ini terinstal.
[in] aTypeList
Jenis integritas yang didukung oleh klien.
[in] aSchemeList
Skema update yang didukung oleh klien.
[in] aPackage
Spesifikasi paket opsional yang didukung oleh klien.
[in] aLocale
Spesifikasi lokalitas opsional yang diminta oleh klien.
[in] aTargetNodeId
ID node target opsional.
[in] aMetaData
Blob data vendor opsional yang dienkode dengan TLV.
Hasil
WEAVE_NO_ERROR Tanpa syarat.

operator==

bool operator==(
  const ImageQuery &
) const 

Operator kesetaraan.

Detail
Parameter
another
ImageQuery untuk memeriksa terhadap ImageQuery ini
Hasil
benar (true) jika semua bidang (field) di kedua objek sama, salah (false) jika tidak

pak

WEAVE_ERROR pack(
  PacketBuffer *
)

Lakukan serialisasi ImageQuery yang mendasarinya ke dalam PacketBuffer yang disediakan.

Detail
Parameter
[in] aBuffer
{i>Buffer<i} paket yang akan digunakan untuk mengemas kueri
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Setelah berhasil
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika ImageQuery terlalu besar untuk dimuat dalam buffer yang disediakan.

cetak

void print(
  void
)

Fungsi statis publik

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Melakukan deserialisasi pesan kueri gambar yang disediakan di PacketBuffer ke dalam ImageQuery yang disediakan.

Detail
Parameter
[in] aBuffer
Pointer ke paket yang akan digunakan untuk mengurai kueri gambar
[in] aQuery
Objek untuk menempatkan hasil
Hasil
WEAVE_NO_ERROR Saat berhasil
Hasil
WEAVE_ERROR_BUFFER_TOO_SMALL Jika pesan terlalu kecil untuk memuat semua kolom ImageQuery
Hasil
WEAVE_ERROR_INVALID_LIST_LENGTH Jika pesan berisi IntegrityTypeList atau UpdateSchemeList yang terlalu panjang