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

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

Resim sorgu mesajlarının oluşturulmasını ve kodunun çözülmesini destekleyen bir sınıf.

Özet

Resim sorgu çerçevesi, kablo üzerinden aşağıdaki biçimdedir

Uzunluk Alan adı
1 bayt çerçeve denetimi
6 bayt ürün spesifikasyonu
değişken sürüm spesifikasyonu
2,.4 bayt bütünlük türü listesi
2,.5 bayt şema listesini güncelle
değişken yerel ayar spesifikasyonu (isteğe bağlı)
8 bayt hedef düğüm kimliği
değişken satıcıya özgü veriler (isteğe bağlı)
çerçeve denetim alanında aşağıdaki gibi bit alanları bulunur:

Keser Anlamı
0 1 - tedarikçiye özel veri mevcut, 0 - mevcut değil
1 1 - yerel ayar spesifikasyonu mevcut, 0 - mevcut değil
2 1 - hedef düğüm kimliği mevcut, 0 - mevcut değil
3..7 Rezervasyon yapıldı
ImageQuery, bir yapı olarak yayındaki gösterimden biraz farklı bir şekilde okunur. Özellikle sürüm ve yerel ayar, (uzunluk, karakter) deliklerin aksine boş sonlu c-dizelerdir ve isteğe bağlı öğelerin her ikisi de boş işaretçiler olarak temsil edilir. Bu nedenle, kontrol edilecek ayrı bir boole yoktur.

Oluşturucular ve Yıkıcılar

ImageQuery()
ImageQuery için varsayılan oluşturucu.

Herkese açık özellikler

integrityTypes
Cihazın desteklediği bütünlük türleri.
localeSpec
Resim sorgusunun yapıldığı cihazda geçerli olan POSIX yerel ayarını içeren, değişken uzunluktaki bir UTF-8 dizesi.
packageSpec
Satıcıya özel paket spesifikasyonu dizesini içeren, değişken uzunlukta UTF-8 dizesi.
productSpec
Resim sorgusunu yapan cihazı açıklayan ürün spesifikasyonu.
targetNodeId
uint64_t
Sorgunun yapıldığı cihazın isteğe bağlı düğüm kimliği.
theMetaData
Tedarikçiye özgü veri alanının uzunluğu değişkendir ve yukarıda açıklanan alanların ötesinde, Weave mesaj yükünün geri kalanını kaplar.
updateSchemes
Cihazın desteklediği şemaları (indirme protokolleri) güncelleme.
version
Sorgunun yapıldığı cihazın satıcı tarafından belirtilen yazılım sürümünü içeren, değişken uzunlukta bir UTF-8 dizesi.

Herkese açık işlevler

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
ImageQuery nesnesini, sağlanan değerlerle açık bir şekilde başlatın.
operator==(const ImageQuery &) const
bool
Eşitlik operatörü.
pack(PacketBuffer *)
Temel ImageQuery'yi, sağlanan PacketBuffer'da serileştirin.
print(void)
void

Herkese açık statik işlevler

parse(PacketBuffer *, ImageQuery &)
PacketBuffer'da sağlanan resim sorgu mesajının serisini kaldırarak, sağlanan bir ImageQuery'ye dönüştürün.

Herkese açık özellikler

integrityTypes

IntegrityTypeList integrityTypes

Cihazın desteklediği bütünlük türleri.

localeSpec

ReferencedString localeSpec

Resim sorgusunun yapıldığı cihazda geçerli olan POSIX yerel ayarını içeren, değişken uzunluktaki bir UTF-8 dizesi.

Dizenin içeriği, ISO/IEC 15897'de belirtildiği gibi POSIX yerel ayar tanımlayıcısı biçimine (ör. Avustralya İngilizcesi için en_AU.UTF-8.

packageSpec

ReferencedString packageSpec

Satıcıya özel paket spesifikasyonu dizesini içeren, değişken uzunlukta UTF-8 dizesi.

Alanın içeriği, yazılım görüntüsü için "rpm", "deb", "tgz", "elf" vb. gibi istenen kapsayıcı türünü açıklar. (NOT: Bu alan, protokolün Nest uygulamalarında kullanılmaz.)

productSpec

ProductSpec productSpec

Resim sorgusunu yapan cihazı açıklayan ürün spesifikasyonu.

targetNodeId

uint64_t targetNodeId

Sorgunun yapıldığı cihazın isteğe bağlı düğüm kimliği.

Hedef düğüm kimliği alanı isteğe bağlıdır. Yoksa sorgunun hedef düğüm kimliği, örtülü olarak görüntü sorgu mesajının kaynağı olan düğümdür.

Hedef düğüm kimliği alanı genellikle IMAGE QUERY mesajının kaynağı olan düğümün başka bir düğüm için yazılım güncelleme proxy'si görevi gördüğü örneklerde kullanılır.

theMetaData

ReferencedTLVData theMetaData

Tedarikçi firmaya özgü veri alanının uzunluğu değişkendir ve yukarıda açıklanan alanların ötesinde, Weave mesaj yükünün geri kalanını kaplar.

Bu alan, sorgunun yapıldığı cihazla ilgili satıcıya özgü bilgileri kodlar. Tedarikçi firmaya özel veri alanı isteğe bağlıdır. Varsa alan, anonim TLV kodlu bir yapı biçimine sahiptir. Bu yapı içinde sunulan etiketler, tam nitelikli profile özgü etiketler olmalıdır.

updateSchemes

UpdateSchemeList updateSchemes

Cihazın desteklediği şemaları (indirme protokolleri) güncelleme.

sürüm

ReferencedString version

Sorgunun yapıldığı cihazın satıcı tarafından belirtilen yazılım sürümünü içeren, değişken uzunlukta bir UTF-8 dizesi.

32 veya daha küçük olmalıdır.

Herkese açık işlevler

ImageQuery

 ImageQuery()

ImageQuery için varsayılan oluşturucu.

ImageQuery, init() çağrısıyla veya nesnenin bir iletiden seri dışı bırakılmasıyla doldurulabilir.

init

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

ImageQuery nesnesini, sağlanan değerlerle açık bir şekilde başlatın.

Ayrıntılar
Parametreler
[in] aProductSpec
Ürün spesifikasyonu.
[in] aVersion
Yazılımın şu anda yüklü sürümü.
[in] aTypeList
İstemci tarafından desteklenen bütünlük türleri.
[in] aSchemeList
İstemci tarafından desteklenen güncelleme şemaları.
[in] aPackage
İstemci tarafından desteklenen isteğe bağlı bir paket spesifikasyonu.
[in] aLocale
İstemci tarafından istenen isteğe bağlı bir yerel ayar özelliği.
[in] aTargetNodeId
İsteğe bağlı bir hedef düğüm kimliği.
[in] aMetaData
İsteğe bağlı TLV kodlu tedarikçi veri blob'u.
İadeler
Koşulsuz olarak WEAVE_NO_ERROR.

operatör==

bool operator==(
  const ImageQuery &
) const 

Eşitlik operatörü.

Ayrıntılar
Parametreler
another
Bu ImageQuery ile karşılaştırmalı olarak kontrol edilecek bir ImageQuery
İadeler
her iki nesnedeki tüm alanlar eşitse true, değilse false

paket

WEAVE_ERROR pack(
  PacketBuffer *
)

Temel ImageQuery'yi, sağlanan PacketBuffer'da serileştirin.

Ayrıntılar
Parametreler
[in] aBuffer
Sorgunun paketleneceği paket tamponu
Değerleri Döndür
WEAVE_NO_ERROR
Başarılı
WEAVE_ERROR_BUFFER_TOO_SMALL
ImageQuery sağlanan arabelleğe sığmayacak kadar büyükse.

yazdır

void print(
  void
)

Herkese açık statik işlevler

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

PacketBuffer'da sağlanan resim sorgu mesajının serisini kaldırarak, sağlanan bir ImageQuery'ye dönüştürün.

Ayrıntılar
Parametreler
[in] aBuffer
Görüntü sorgusunun ayrıştırılacağı paket işaretçisi
[in] aQuery
Sonucun yerleştirileceği nesne
İadeler
WEAVE_NO_ERROR Başarıyla tamamlandı
İadeler
WEAVE_ERROR_BUFFER_TOO_SMALL İleti, ImageQuery'deki tüm alanları içermeyecek kadar küçükse
İadeler
WEAVE_ERROR_INVALID_LIST_LENGTH İleti, çok uzun bir IntegrityTypeList veya UpdateSchemeList içeriyorsa