Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::Profile::SoftwareUpdate::ImageQuery

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

Eine Klasse zur Unterstützung der Erstellung und Decodierung von Bildabfragenachrichten.

Zusammenfassung

Der Frame der Bildabfrage hat das folgende Format über dem Kabel

Zeitfenster Feldname
1 Byte Frame Control
6 Byte Produktspezifikation
Variable Versionsspezifikation
2,4 Byte Integritätstypliste
2,5 Byte Schemaliste aktualisieren
Variable Sprache (optional)
8 Byte Zielknoten-ID
Variable Anbieterspezifische Daten (optional)
Dabei hat das Frame-Steuerfeld folgende Bit-Felder:

Bit Bedeutung
0 1 – Anbieterspezifische Daten vorhanden, 0 – nicht vorhanden
1 1 – Sprache angegeben, 0 – nicht vorhanden
2 1 – Zielknoten-ID vorhanden, 0 – nicht vorhanden
3–7 Reserviert
Die ImageQuery unterscheidet sich geringfügig von der Darstellung während der Übertragung. Insbesondere sind die Version und die Sprache keine abgeschlossenen c-Strings (im Gegensatz zu Längengraden, Zeichen) und beide optionalen Elemente werden als Nullzeiger dargestellt. Daher gibt es keinen separaten booleschen Wert für die Prüfung.

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 enthält, die für das Gerät gilt, 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 stammt.
targetNodeId
uint64_t
Eine optionale Knoten-ID des Geräts, für das die Abfrage durchgeführt wird.
theMetaData
Das Feld des anbieterspezifischen Datenfelds ist variabel und wird in der Länge der Nutzlast der Weave-Nachricht über die oben beschriebenen Felder hinaus ausgewertet.
updateSchemes
Aktualisierungsschemas (Downloadprotokolle), die vom Gerät unterstützt werden.
version
Ein UTF-8-String mit variabler Länge, der die vom Anbieter angegebene Softwareversion des Geräts enthält, für das die Abfrage erstellt wird.

Öffentliche Funktionen

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

Öffentliche statische Funktionen

parse(PacketBuffer *, ImageQuery &)
Dearchivieren Sie die in einem PacketBuffer bereitgestellte Bildabfragenachricht in eine bereitgestellte ImageQuery.

Öffentliche Attribute

Integritätstypen

IntegrityTypeList integrityTypes

Vom Gerät unterstützte Integritätstypen.

Sprache

ReferencedString localeSpec

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

Der Inhalt des Strings muss dem POSIX-Gebietsschema entsprechen, das in ISO/IEC 15897 angegeben ist, z.B. 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“, „elf“ usw. (HINWEIS: Dieses Feld wird in den Nest-Implementierungen des Protokolls nicht verwendet.)

productSpec (Produktspezifikation)

ProductSpec productSpec

Produktspezifikation, die das Gerät beschreibt, von dem die Bildabfrage stammt.

Zielknoten-ID

uint64_t targetNodeId

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

Das Feld „Zielknoten-ID“ ist optional. Wenn nicht vorhanden, ist die Zielknoten-ID für die Abfrage implizit der Knoten, der die Quelle der Bildabfragenachricht war.

Das Zielknoten-ID-Feld wird in der Regel in Fällen verwendet, in denen der Knoten, der die Quelle der IMAGE QUERY-Nachricht ist, als Software-Update-Proxy für einen anderen Knoten dient.

Metadaten

ReferencedTLVData theMetaData

Das Feld des anbieterspezifischen Datenfelds ist variabel und wird in der Länge der Nutzlast der Weave-Nachricht über die oben beschriebenen Felder hinaus ausgewertet.

Im Feld werden anbieterspezifische Informationen zu dem Gerät codiert, auf dem die Abfrage erfolgt. Das anbieterspezifische Datenfeld ist optional. Falls vorhanden, weist das Feld eine anonyme TLV-codierte Struktur auf. Bei den in dieser Struktur enthaltenen Tags muss es sich um voll qualifizierte, profilspezifische Tags handeln.

Schema aktualisieren

UpdateSchemeList updateSchemes

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

Version

ReferencedString version

Ein UTF-8-String mit variabler Länge, der die vom Anbieter angegebene Softwareversion des Geräts enthält, für das die Abfrage erstellt wird.

Muss mindestens 32 Zeichen lang sein.

Öffentliche Funktionen

Bildabfrage

 ImageQuery()

Standardkonstruktor für ImageQuery.

Die ImageQuery kann durch Aufrufen von init() oder durch Dearchivieren 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 Objekt ImageQuery 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 Updateschemas.
[in] aPackage
Eine optionale Paketspezifikation, die vom Client unterstützt wird.
[in] aLocale
Eine optionale Sprache, die vom Client angefordert wurde.
[in] aTargetNodeId
Eine optionale Zielknoten-ID.
[in] aMetaData
Ein optionales TLV-codiertes Anbieter-Blob.
Rückgabe
WEAVE_NO_ERROR Ohne Bedingung.

Operator==

bool operator==(
  const ImageQuery &
) const 

Ein Gleichheitsoperator.

Details
Parameter
another
Eine ImageQuery, die mit dieser ImageQuery verglichen werden soll
Rückgabe
„wahr“, wenn alle Felder in beiden Objekten gleich sind, andernfalls „falsch“

Packung

WEAVE_ERROR pack(
  PacketBuffer *
)

Serialisieren Sie die zugrunde liegende ImageQuery im 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ß für den angegebenen Zwischenspeicher ist.

Print

void print(
  void
)

Öffentliche statische Funktionen

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Dearchivieren Sie die in einem PacketBuffer bereitgestellte 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_KLEIN, wenn die Nachricht zu klein war, um nicht alle Felder von ImageQuery zu enthalten
Rückgabe
WEAVE_ERROR_INVALID_LIST_LENGTH Wenn die Nachricht eine IntegrityTypeList oder UpdateSchemeList enthielt, die zu lang war