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

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

Klasa obsługująca tworzenie i dekodowanie wiadomości z zapytaniami o obrazy.

Podsumowanie

Ramka zapytania o obraz ma taką postać na przewodzie

Długość Nazwa pola
1 bajt sterowanie klatką
6 bajtów specyfikacja produktu
zmienna specyfikacja wersji
2,4 bajta lista typów integralności
2,,5 bajta zaktualizuj listę schematów
zmienna specyfikacja języka (opcjonalnie)
8 bajtów identyfikator węzła docelowego
zmienna dane konkretnego dostawcy (opcjonalnie)
gdzie pole kontroli ramki zawiera takie pola bitowe:

Końcówka Znaczenie
0 1 – występują dane konkretnego dostawcy, 0 – brak
1 1 – istnieje specyfikacja języka, 0 – brak
2 1 – identyfikator węzła docelowego występuje, 0 – brak
3..7 Zarezerwowane
ImageQuery, czyli struktura odczytana trochę inaczej niż reprezentacja w transmisji. W szczególności wersje i region to ciągi c zakończone na wartość null (a nie krotki (długość, znaki)), a oba elementy opcjonalne są przedstawiane jako wskaźniki do wartości null, więc nie ma osobnej wartości logicznej do sprawdzenia.

Konstruktory i niszczyciele

ImageQuery()
Domyślny konstruktor dla ImageQuery.

Atrybuty publiczne

integrityTypes
Typy integralności obsługiwane przez urządzenie.
localeSpec
Ciąg znaków UTF-8 o zmiennej długości zawierający język POSIX, który obowiązuje na urządzeniu, którego dotyczy zapytanie o obraz.
packageSpec
Ciąg znaków UTF-8 o zmiennej długości zawierający ciąg specyfikacji pakietu konkretnego dostawcy.
productSpec
Specyfikacja produktu opisująca urządzenie, które wysyła zapytanie o zdjęcie.
targetNodeId
uint64_t
Opcjonalny identyfikator węzła urządzenia, dla którego wysyłane jest zapytanie.
theMetaData
Pole danych specyficzne dla dostawcy ma zmienną długością i zajmuje pozostałą część ładunku wiadomości Weave, poza polami opisanymi powyżej.
updateSchemes
Aktualizuj schematy (protokoły pobierania) obsługiwane przez urządzenie.
version
Ciąg znaków UTF-8 o zmiennej długości zawierający określoną przez dostawcę wersję oprogramowania urządzenia, dla którego wysyłane jest zapytanie.

Funkcje publiczne

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Jawnie zainicjuj obiekt ImageQuery za pomocą podanych wartości.
operator==(const ImageQuery &) const
bool
Operator równości.
pack(PacketBuffer *)
Zserializuj bazowe zapytanie ImageQuery w podanym pakiecie PacketBuffer.
print(void)
void

Publiczne funkcje statyczne

parse(PacketBuffer *, ImageQuery &)
Deserializuj wiadomość z zapytaniem o obraz podaną w PaceBuffer w przesłanym obiekcie ImageQuery.

Atrybuty publiczne

integrityTypes

IntegrityTypeList integrityTypes

Typy integralności obsługiwane przez urządzenie.

localeSpec

ReferencedString localeSpec

Ciąg znaków UTF-8 o zmiennej długości zawierający język POSIX, który obowiązuje na urządzeniu, którego dotyczy zapytanie o obraz.

Zawartość ciągu musi być zgodna z formatem identyfikatora języka POSIX, określonym w normie ISO/IEC 15897, np. en_AU.UTF-8 dla australijskiego angielskiego.

packageSpec

ReferencedString packageSpec

Ciąg znaków UTF-8 o zmiennej długości zawierający ciąg specyfikacji pakietu konkretnego dostawcy.

Zawartość pola opisuje odpowiedni typ kontenera na obraz oprogramowania, np. „rpm”, „deb”, „tgz”, „elf” itp. (UWAGA: to pole nie jest używane w implementacjach protokołu Nest).

productSpec

ProductSpec productSpec

Specyfikacja produktu opisująca urządzenie, które wysyła zapytanie o zdjęcie.

targetNodeId

uint64_t targetNodeId

Opcjonalny identyfikator węzła urządzenia, dla którego wysyłane jest zapytanie.

Pole identyfikatora węzła docelowego jest opcjonalne. Jeśli identyfikator węzła docelowego dla zapytania nie jest podany, domyślnie jest to węzeł, który był źródłem komunikatu z zapytaniem o obraz.

Pole identyfikatora węzła docelowego jest zwykle używane w instancjach, w których węzeł, który jest źródłem komunikatu IMAGE QUERY, służy jako serwer proxy aktualizacji oprogramowania innego węzła.

theMetaData

ReferencedTLVData theMetaData

Pole danych specyficzne dla dostawcy ma zmienną długością i zajmuje pozostałą część ładunku wiadomości Weave, poza polami opisanymi powyżej.

Pole koduje specyficzne dla dostawcy informacje o urządzeniu, dla którego wysyłane jest zapytanie. Pole danych specyficzne dla dostawcy jest opcjonalne. Jeśli pole występuje, ma postać anonimowej struktury zakodowanej w formacie TLV. Tagi wyświetlane w ramach tej struktury powinny być w pełni kwalifikowanymi tagami związanymi z profilem.

updateSchemes

UpdateSchemeList updateSchemes

Aktualizuj schematy (protokoły pobierania) obsługiwane przez urządzenie.

wersja

ReferencedString version

Ciąg znaków UTF-8 o zmiennej długości zawierający określoną przez dostawcę wersję oprogramowania urządzenia, dla którego wysyłane jest zapytanie.

Rozmiar nie może przekraczać 32 znaków.

Funkcje publiczne

ImageQuery

 ImageQuery()

Domyślny konstruktor dla ImageQuery.

Pole ImageQuery może zostać wypełnione przez wywołanie init() lub deserializacja obiektu z wiadomości.

init

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

Jawnie zainicjuj obiekt ImageQuery za pomocą podanych wartości.

Szczegóły
Parametry
[in] aProductSpec
Specyfikacja produktu.
[in] aVersion
Aktualnie zainstalowana wersja oprogramowania.
[in] aTypeList
Typy integralności obsługiwane przez klienta.
[in] aSchemeList
Schematy aktualizacji obsługiwane przez klienta.
[in] aPackage
Opcjonalna specyfikacja pakietu obsługiwana przez klienta.
[in] aLocale
Opcjonalna specyfikacja języka żądanego przez klienta.
[in] aTargetNodeId
Opcjonalny identyfikator węzła docelowego.
[in] aMetaData
Opcjonalny obiekt blob danych dostawcy zakodowany w formacie TLV.
Zwroty
WEAVE_NO_ERROR Bezwarunkowo.

operator==

bool operator==(
  const ImageQuery &
) const 

Operator równości.

Szczegóły
Parametry
another
Zapytanie ImageQuery, które należy sprawdzić pod kątem tego ImageQuery
Zwroty
true (prawda), jeśli wszystkie pola w obu obiektach są równe. W przeciwnym razie ma wartość false (fałsz)

paczka

WEAVE_ERROR pack(
  PacketBuffer *
)

Zserializuj bazowe zapytanie ImageQuery w podanym pakiecie PacketBuffer.

Szczegóły
Parametry
[in] aBuffer
Bufor pakietów, w którym umieszcza się zapytanie
Zwracane wartości
WEAVE_NO_ERROR
Po pomyślnym zakończeniu
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli pole ImageQuery jest zbyt duże, aby zmieścić się w wyświetlonym buforze.

wyświetlić

void print(
  void
)

Publiczne funkcje statyczne

analizowa

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserializuj wiadomość z zapytaniem o obraz podaną w PaceBuffer w przesłanym obiekcie ImageQuery.

Szczegóły
Parametry
[in] aBuffer
Wskaźnik do pakietu, z którego ma być analizowany zapytanie o obraz
[in] aQuery
Obiekt, w którym należy umieścić wynik
Zwroty
WEAVE_NO_ERROR Po powodzeniu
Zwroty
WEAVE_ERROR_BUFFER_TOO_SMALL Jeśli wiadomość jest zbyt mała, aby pomieścić wszystkie pola zapytania ImageQuery
Zwroty
WEAVE_ERROR_INVALID_LIST_LENGTH Jeśli wiadomość zawierała zbyt długa listę typu IntegrityTypeList lub UpdateSchemeList