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

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

Eine Klasse, die das Erstellen und Decodieren von Bildabfragenachrichten unterstützt.

Zusammenfassung

Der Bildabfrage-Frame hat folgende Form über die Leitung

Länge Feldname
1 Byte Frame-Steuerung
6 Byte Produktspezifikation
variabel Versionsspezifikation
2 bis 4 Byte Liste der Integritätstypen
2,.5 Byte Schemaliste aktualisieren
variabel Sprachspezifikation (optional)
8 Byte Zielknoten-ID
variabel anbieterspezifische Daten (optional)
Dabei hat das Frame-Control-Feld folgende Bitfelder:

Bit Bedeutung
0 1 – anbieterspezifische Daten vorhanden, 0 – nicht vorhanden
1 1 – Sprachspezifikation vorhanden, 0 – nicht vorhanden
2 1 – ID des Zielknotens vorhanden, 0 – nicht vorhanden
3..7 Reserviert
Die Struktur ImageQuery unterscheidet sich geringfügig von der in Übertragung befindlichen Darstellung. Insbesondere sind Version und Gebietsschema C-Strings mit Null-Ende im Gegensatz zu Tupeln (Länge, Zeichen) und beide optionalen Elemente werden als Zeiger mit Nullwerten dargestellt, sodass kein separater boolescher Wert geprüft werden muss.

Konstruktoren und Zerstörer

ImageQuery()
Standardkonstruktor für ImageQuery.

Öffentliche Attribute

integrityTypes
Vom Gerät unterstützte Integritätstypen.
localeSpec
Ein UTF-8-String mit variabler Länge, der die POSIX-Sprache auf dem Gerät enthält, für das die Bildabfrage durchgeführt wird.
packageSpec
Ein UTF-8-String mit variabler Länge, der einen anbieterspezifischen Paketspezifikationsstring enthält.
productSpec
Produktspezifikation, die das Gerät beschreibt, von dem die Bildabfrage durchgeführt wird.
targetNodeId
uint64_t
Eine optionale Knoten-ID des Geräts, für das die Abfrage durchgeführt wird.
theMetaData
Das anbieterspezifische Datenfeld hat eine variable Länge und belegt den Rest der Weave-Nachrichtennutzlast über die oben beschriebenen Felder hinaus.
updateSchemes
Aktualisierungsschemas (Downloadprotokolle), die vom Gerät unterstützt werden.
version
Ein UTF-8-String mit variabler Länge, der die anbieterspezifische Softwareversion des Geräts enthält, für das die Abfrage durchgeführt wird.

Öffentliche Funktionen

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Initialisieren Sie das ImageQuery-Objekt explizit mit den angegebenen Werten.
operator==(const ImageQuery &) const
bool
Ein Gleichheitsoperator.
pack(PacketBuffer *)
Serialisiert die zugrunde liegende ImageQuery in den bereitgestellten PacketBuffer.
print(void)
void

Öffentliche statische Funktionen

parse(PacketBuffer *, ImageQuery &)
Deserialisiert die in einem PacketBuffer enthaltene Bildabfragenachricht in eine bereitgestellte ImageQuery.

Öffentliche Attribute

integrityTypes

IntegrityTypeList integrityTypes

Vom Gerät unterstützte Integritätstypen.

localeSpec

ReferencedString localeSpec

Ein UTF-8-String mit variabler Länge, der die POSIX-Sprache auf dem Gerät enthält, für das die Bildabfrage durchgeführt wird.

Der Inhalt des Strings muss dem POSIX-Format der Gebietsschema-ID entsprechen, wie in ISO/IEC 15897 angegeben. Beispiel: en_AU.UTF-8 für australisches Englisch.

packageSpec

ReferencedString packageSpec

Ein UTF-8-String mit variabler Länge, der einen anbieterspezifischen Paketspezifikationsstring enthält.

Der Inhalt des Felds beschreibt den gewünschten Containertyp für das Software-Image, z. B. „rpm“, „deb“, „tgz“ oder „elf“. (HINWEIS: Dieses Feld wird in Nest-Implementierungen des Protokolls nicht verwendet.)

productSpec

ProductSpec productSpec

Produktspezifikation, die das Gerät beschreibt, von dem die Bildabfrage durchgeführt wird.

targetNodeId

uint64_t targetNodeId

Eine optionale Knoten-ID des Geräts, für das die Abfrage durchgeführt wird.

Das Feld für die Zielknoten-ID ist optional. Wenn nicht vorhanden, bezieht sich die Zielknoten-ID für die Abfrage implizit auf den Knoten, der die Quelle der Bildabfragenachricht war.

Das Zielknoten-ID-Feld wird in der Regel in Instanzen verwendet, bei denen der Knoten, der die Quelle der BILDABFRAGE-Nachricht ist, als Software-Update-Proxy für einen anderen Knoten dient.

theMetaData

ReferencedTLVData theMetaData

Das anbieterspezifische Datenfeld hat eine variable Länge und belegt den Rest der Weave-Nachrichtennutzlast über die oben beschriebenen Felder hinaus.

Das Feld codiert anbieterspezifische Informationen zu dem Gerät, für das die Abfrage durchgeführt wird. Das anbieterspezifische Datenfeld ist optional. Falls vorhanden, hat das Feld eine anonyme TLV-codierte Struktur. Die in dieser Struktur dargestellten Tags sind voll qualifizierte profilspezifische Tags.

updateSchemes

UpdateSchemeList updateSchemes

Aktualisierungsschemas (Downloadprotokolle), die vom Gerät unterstützt werden.

Version

ReferencedString version

Ein UTF-8-String mit variabler Länge, der die anbieterspezifische Softwareversion des Geräts enthält, für das die Abfrage durchgeführt wird.

Darf maximal 32 Zeichen lang sein.

Öffentliche Funktionen

ImageQuery

 ImageQuery()

Standardkonstruktor für ImageQuery.

ImageQuery kann durch Aufrufen von init() oder durch Deserialisieren des Objekts aus einer Nachricht ausgefüllt werden.

init

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

Initialisieren Sie das ImageQuery-Objekt explizit mit den angegebenen Werten.

Details
Parameter
[in] aProductSpec
Produktspezifikation.
[in] aVersion
Derzeit installierte Softwareversion.
[in] aTypeList
Die vom Client unterstützten Integritätstypen.
[in] aSchemeList
Die vom Client unterstützten Aktualisierungsschemas.
[in] aPackage
Eine optionale Paketspezifikation, die vom Client unterstützt wird.
[in] aLocale
Eine optionale Sprachspezifikation, die vom Client angefordert wird.
[in] aTargetNodeId
Eine optionale Zielknoten-ID.
[in] aMetaData
Ein optionales TLV-codiertes Anbieterdaten-Blob.
Rückgabe
WEAVE_NO_ERROR Bedingungslos.

Operator==

bool operator==(
  const ImageQuery &
) const 

Ein Gleichheitsoperator.

Details
Parameter
another
Eine ImageQuery, die anhand dieser ImageQuery geprüft wird.
Rückgabe
"true", wenn alle Felder in beiden Objekten gleich sind, andernfalls "false"

Packung

WEAVE_ERROR pack(
  PacketBuffer *
)

Serialisiert die zugrunde liegende ImageQuery in den bereitgestellten PacketBuffer.

Details
Parameter
[in] aBuffer
Ein Paketzwischenspeicher, in den die Abfrage gepackt werden soll
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg
WEAVE_ERROR_BUFFER_TOO_SMALL
Wenn ImageQuery zu groß ist, um in den bereitgestellten Zwischenspeicher zu passen.

ausgeben

void print(
  void
)

Öffentliche statische Funktionen

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserialisiert die in einem PacketBuffer enthaltene Bildabfragenachricht in eine bereitgestellte ImageQuery.

Details
Parameter
[in] aBuffer
Ein Zeiger auf ein Paket, aus dem die Bildabfrage geparst werden soll
[in] aQuery
Ein Objekt, in das das Ergebnis eingefügt werden soll
Rückgabe
WEAVE_NO_ERROR Bei Erfolg
Rückgabe
WEAVE_ERROR_BUFFER_TOO_small Wenn die Nachricht zu klein war, um alle Felder von ImageQuery enthalten zu können,
Rückgabe
WEAVE_ERROR_INVALID_LIST_LENGTH Wenn die Nachricht eine zu lange IntegrityTypeList oder UpdateSchemeList enthielt