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

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

Klasa do tworzenia i dekodowania wiadomości zapytań dotyczących obrazów.

Podsumowanie

Ramka zapytania o obraz ma na przewód ten format

Długość Nazwa pola
1 bajt sterowanie ramkami
6 bajtów specyfikacja produktu
zmienna specyfikacja wersji
2,4 bajtów lista typów integralności
2,5 bajtu zaktualizuj listę schematów
zmienna specyfikacja języka (opcjonalnie)
8 bajtów identyfikator węzła docelowego
zmienna dane dotyczące dostawcy (opcjonalnie)
gdzie pole sterowania ramką zawiera następujące pola bitowe:

Końcówka Znaczenie
0 1 – dostępne dane dotyczące konkretnego dostawcy, 0 – brak
1 1 – podano specyfikację języka, 0 – brak
2 1 – podano identyfikator węzła docelowego, 0 – nie występuje
3..7 Zarezerwowano
ImageQuery, jako struktura, odczytuje się nieco inaczej niż reprezentacja w trakcie transmisji. W szczególności wersja i język są ciągi znaków c z końcami zerowymi (w odróżnieniu od krotek (długość, znaki), a oby elementy opcjonalne są reprezentowane jako wskaźniki z możliwością wartości null, dlatego nie ma osobnej wartości logicznej do sprawdzenia.

Konstruktorzy 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 obowiązujący na urządzeniu, w przypadku którego wysyła się zapytanie dotyczące obrazu.
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 grafikę.
targetNodeId
uint64_t
Opcjonalny identyfikator węzła urządzenia, dla którego tworzysz zapytanie.
theMetaData
Pole danych konkretnego dostawcy ma zmienną długości i zajmuje pozostałą część ładunku wiadomości Weave poza polami opisanymi powyżej.
updateSchemes
Zaktualizuj 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 tworzone 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 podstawowe zapytanie ImageQuery w udostępnionym buforze pakietów.
print(void)
void

Publiczne funkcje statyczne

parse(PacketBuffer *, ImageQuery &)
Deserializuj wiadomość zapytania o obraz przesłaną w PacketBuffer do pliku 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 obowiązujący na urządzeniu, w przypadku którego wysyła się zapytanie dotyczące obrazu.

Zawartość ciągu musi być zgodna z formatem identyfikatora języka POSIX zgodnym z normą ISO/IEC 15897, np. en_AU.UTF-8 w przypadku 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ść tego pola zawiera opis odpowiedniego typu kontenera do obrazu oprogramowania, np. „rpm”, „deb”, „tgz”, „elf” itp. (UWAGA: to pole nie jest używane w implementacjach Nest tego protokołu).

productSpec

ProductSpec productSpec

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

targetNodeId

uint64_t targetNodeId

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

Pole identyfikatora węzła docelowego jest opcjonalne. Jeśli go brak, identyfikator węzła docelowego dla zapytania jest domyślnie węzłem, który był źródłem wiadomości dotyczącej zapytania dotyczącego obrazu.

Pole identyfikatora węzła docelowego jest zwykle używane w przypadkach, gdy węzeł, który jest źródłem wiadomości ZAPYTANIE ZDJĘCIA, działa jako serwer proxy aktualizacji oprogramowania dla innego węzła.

theMetaData

ReferencedTLVData theMetaData

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

To pole zawiera informacje specyficzne dla dostawcy o urządzeniu, dla którego tworzysz zapytanie. Pole danych dostawcy jest opcjonalne. Jeśli pole jest obecne, ma postać anonimowej struktury zakodowanej w formacie TLV. Tagi prezentowane w tej strukturze są w pełni dokładnymi tagami specyficznymi dla danego profilu.

updateSchemes

UpdateSchemeList updateSchemes

Zaktualizuj 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 tworzone jest zapytanie.

Długość nie może przekraczać 32 znaków.

Funkcje publiczne

ImageQuery

 ImageQuery()

Domyślny konstruktor dla ImageQuery.

Zapytanie ImageQuery może być wypełniane przez wywołanie init() lub przez deserializację 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 wymagana 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
ImageQuery do sprawdzenia pod kątem tego ImageQuery
Zwroty
prawda, jeśli wszystkie pola w obu obiektach są równe, lub fałsz w przeciwnym razie

paczka

WEAVE_ERROR pack(
  PacketBuffer *
)

Zserializuj podstawowe zapytanie ImageQuery w udostępnionym buforze pakietów.

Szczegóły
Parametry
[in] aBuffer
Bufor pakietów, w którym należy pakować zapytanie
Zwracane wartości
WEAVE_NO_ERROR
Po pomyślnym zakończeniu
WEAVE_ERROR_BUFFER_TOO_SMALL
Zapytanie ImageQuery jest za duże, aby zmieścić się w udostępnionym buforze.

wyświetlić

void print(
  void
)

Publiczne funkcje statyczne

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserializuj wiadomość zapytania o obraz przesłaną w PacketBuffer do pliku ImageQuery.

Szczegóły
Parametry
[in] aBuffer
Wskaźnik do pakietu, z którego ma zostać przeanalizować zapytanie dotyczące obrazu.
[in] aQuery
Obiekt, w którym zostanie umieszczony wynik
Zwroty
WEAVE_NO_ERROR Po pomyślnym zakończeniu
Zwroty
WEAVE_ERROR_BUFFER_TOO_SMALL Jeśli wiadomość jest zbyt mała, aby zmieściła się we wszystkich polach ImageQuery
Zwroty
WEAVE_ERROR_Nieprawidłowe_LIST_LENGTH – jeśli wiadomość zawierała za długi element IntegrityTypeList lub UpdateSchemeList.