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

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

Resim sorgu mesajlarının oluşturulmasını ve kodunu çözmeyi destekleyen bir sınıf.

Özet

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

Uzunluk Alan adı
1 bayt kare 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 tedarikçi firmaya özgü veriler (isteğe bağlı)
Burada çerçeve kontrol alanı aşağıdaki gibi bit alanlarına sahiptir:

Anlamı
0 1 - tedarikçiye özel veri var, 0 - yok
1 1 - yerel ayar belirtimi var, 0 - yok
2 1 - Hedef düğüm kimliği mevcut, 0 - mevcut değil
3..7 Rezervasyon yapıldı
ImageQuery, bir yapı olarak geçişteki gösterimden biraz farklı okunur. Özellikle, sürüm ve yerel ayar null sona ermiş c-dizeleridir ((uzunluk, karakter) tuple'lerinin aksine) ve isteğe bağlı öğelerin ikisi de null özellikli 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 tarafından desteklenen bütünlük türleri.
localeSpec
Resim sorgusunun yapıldığı cihazda geçerli olan POSIX yerel ayarını içeren, değişken uzunlukta UTF-8 dizesi.
packageSpec
Tedarikçi firmaya ö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çi firmaya özel 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üncelleyin.
version
Sorgunun yapıldığı cihazın satıcı tarafından belirtilen yazılım sürümünü içeren değişken uzunlukta UTF-8 dizesi.

Kamu işlevleri

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ça başlatın.
operator==(const ImageQuery &) const
bool
Eşitlik operatörü.
pack(PacketBuffer *)
Temel ImageQuery'yi sağlanan PacketBuffer içinde serileştirin.
print(void)
void

Herkese açık statik işlevler

parse(PacketBuffer *, ImageQuery &)
PacketBuffer içinde sağlanan resim sorgusu mesajını, sağlanan bir ImageQuery'de seri haline getirin.

Herkese açık özellikler

integrityTypes

IntegrityTypeList integrityTypes

Cihaz tarafından desteklenen 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 uzunlukta UTF-8 dizesi.

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

packageSpec

ReferencedString packageSpec

Tedarikçi firmaya ö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" 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, dolaylı olarak resim sorgusu mesajının kaynağı olan düğüm olur.

Hedef düğüm kimliği alanı genellikle RESİM QUERY mesajının kaynağı olan düğümün başka bir düğüm için yazılım güncelleme proxy'si olarak hizmet verdiği durumlarda kullanılır.

theMetaData

ReferencedTLVData theMetaData

Tedarikçi firmaya özel 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ığı cihaz hakkında tedarikçi firmaya özel bilgileri kodlar. Tedarikçi firmaya özel veri alanı isteğe bağlıdır. Varsa alan, anonim TLV kodlamalı bir yapı biçimine sahiptir. Bu yapıda sunulan etiketler, profile özel tam etiketler olmalıdır.

updateSchemes

UpdateSchemeList updateSchemes

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

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 UTF-8 dizesi.

Video en fazla 32 karakter uzunluğunda olmalıdır.

Kamu işlevleri

ImageQuery

 ImageQuery()

ImageQuery için varsayılan oluşturucu.

ImageQuery, init() çağrısı yapılarak veya nesnenin bir iletiden seri durumdan çıkarı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ça 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ı yerel ayar spesifikasyonu.
[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
WEAVE_NO_ERROR Koşulsuz olarak.

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
İki nesnedeki tüm alanlar eşitse doğru, aksi takdirde yanlış

paket

WEAVE_ERROR pack(
  PacketBuffer *
)

Temel ImageQuery'yi sağlanan PacketBuffer içinde serileştirin.

Ayrıntılar
Parametreler
[in] aBuffer
Sorgunun paketleneceği paket arabelleği
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olursa
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 içinde sağlanan resim sorgusu mesajını, sağlanan bir ImageQuery'de seri haline getirin.

Ayrıntılar
Parametreler
[in] aBuffer
Resim sorgusunun ayrıştırılacağı paketin işaretçisi
[in] aQuery
Sonucun yerleştirileceği bir nesne
İadeler
WEAVE_NO_ERROR Başarılı olursa
İadeler
WEAVE_ERROR_BUFFER_TOO_small İleti, ImageQuery'nin tüm alanlarını içeremeyecek kadar küçükse
İadeler
WEAVE_ERROR_INVALID_LIST_LENGTH İletide çok uzun bir IntegrityTypeList veya UpdateSchemeList varsa