нл:: Переплетение:: Профили:: Обновление программного обеспечения:: ImageQuery
#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>
Класс для поддержки создания и декодирования сообщений запроса изображений.
Краткое содержание
Кадр запроса изображения по сети имеет следующую форму:
Длина | Имя поля |
1 байт | контроль кадра |
6 байт | спецификация продукта |
переменная | спецификация версии |
2..4 байта | список типов целостности |
2..5 байт | обновить список схем |
переменная | спецификация локали (необязательно) |
8 байт | идентификатор целевого узла |
переменная | данные поставщика (необязательно) |
Кусочек | Значение |
0 | 1 – данные производителя присутствуют, 0 – нет |
1 | 1 — спецификация локали присутствует, 0 — нет. |
2 | 1 — идентификатор целевого узла присутствует, 0 — нет. |
3..7 | Сдержанный |
Конструкторы и деструкторы | |
---|---|
ImageQuery () Конструктор по умолчанию для ImageQuery . |
Публичные атрибуты | |
---|---|
integrityTypes | Типы целостности, поддерживаемые устройством. |
localeSpec | Строка UTF-8 переменной длины, содержащая локаль POSIX, действующую на устройстве, для которого выполняется запрос изображения. |
packageSpec | Строка UTF-8 переменной длины, содержащая строку спецификации пакета, зависящую от поставщика. |
productSpec | Спецификация продукта, описывающая устройство, выполняющее запрос изображения. |
targetNodeId | uint64_t Необязательный идентификатор узла устройства, для которого выполняется запрос. |
theMetaData | Поле данных, зависящее от поставщика, имеет переменную длину и занимает остальную часть полезных данных сообщения Weave, помимо полей, описанных выше. |
updateSchemes | Схемы обновления (протоколы загрузки), поддерживаемые устройством. |
version | Строка UTF-8 переменной длины, содержащая указанную поставщиком версию программного обеспечения устройства, для которого выполняется запрос. |
Общественные функции | |
---|---|
init ( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData) | Явно инициализируйте объект ImageQuery с предоставленными значениями. |
operator== (const ImageQuery &) const | bool Оператор равенства. |
pack (PacketBuffer *) | Сериализуйте базовый ImageQuery в предоставленный PacketBuffer. |
print (void) | void |
Публичные статические функции | |
---|---|
parse (PacketBuffer *, ImageQuery &) | Десериализовать сообщение запроса изображения, предоставленное в PacketBuffer, в предоставленный ImageQuery . |
Публичные атрибуты
локальСпец
ReferencedString localeSpec
Строка UTF-8 переменной длины, содержащая локаль POSIX, действующую на устройстве, для которого выполняется запрос изображения.
Содержимое строки должно соответствовать формату идентификатора локали POSIX, как указано в ISO/IEC 15897, например en_AU.UTF-8 для австралийского английского языка.
спецификация пакета
ReferencedString packageSpec
Строка UTF-8 переменной длины, содержащая строку спецификации пакета, зависящую от поставщика.
Содержимое поля описывает желаемый тип контейнера для образа программного обеспечения, например «rpm», «deb», «tgz», «elf» и т. д. (ПРИМЕЧАНИЕ. Это поле не используется в реализациях протокола Nest).
Спецификация продукта
ProductSpec productSpec
Спецификация продукта, описывающая устройство, выполняющее запрос изображения.
целевойнодеид
uint64_t targetNodeId
Необязательный идентификатор узла устройства, для которого выполняется запрос.
Поле идентификатора целевого узла является необязательным. Если он отсутствует, идентификатор целевого узла для запроса неявно является узлом, который был источником сообщения запроса изображения.
Поле идентификатора целевого узла обычно используется в тех случаях, когда узел, являющийся источником сообщения IMAGE QUERY, служит прокси-сервером обновления программного обеспечения для другого узла.
метаданные
ReferencedTLVData theMetaData
Поле данных, зависящее от поставщика, имеет переменную длину и занимает остальную часть полезных данных сообщения Weave, помимо полей, описанных выше.
В этом поле кодируется информация поставщика об устройстве, для которого делается запрос. Поле данных, зависящее от поставщика, является необязательным. Если оно присутствует, оно имеет форму анонимной структуры, закодированной в TLV. Теги, представленные в этой структуре, должны быть полностью определенными тегами, специфичными для профиля.
updateSchemes
UpdateSchemeList updateSchemes
Схемы обновления (протоколы загрузки), поддерживаемые устройством.
версия
ReferencedString version
Строка UTF-8 переменной длины, содержащая указанную поставщиком версию программного обеспечения устройства, для которого выполняется запрос.
Должен иметь длину 32 или меньше.
Общественные функции
ImageQuery
ImageQuery()
Конструктор по умолчанию для ImageQuery .
ImageQuery можно заполнить, вызвав init() или десериализовав объект из сообщения.
инициализировать
WEAVE_ERROR init( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData )
Явно инициализируйте объект ImageQuery с предоставленными значениями.
Подробности | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||||||
Возврат | WEAVE_NO_ERROR Безусловно. |
оператор==
bool operator==( const ImageQuery & ) const
Оператор равенства.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | true, если все поля в обоих объектах равны, в противном случае — false |
пакет
WEAVE_ERROR pack( PacketBuffer * )
Сериализуйте базовый ImageQuery в предоставленный PacketBuffer.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
распечатать
void print( void )
Публичные статические функции
анализировать
WEAVE_ERROR parse( PacketBuffer *, ImageQuery & )
Десериализовать сообщение запроса изображения, предоставленное в PacketBuffer, в предоставленный ImageQuery .
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возврат | WEAVE_NO_ERROR В случае успеха | ||||
Возврат | WEAVE_ERROR_BUFFER_TOO_SMALL Если сообщение слишком мало и не может содержать все поля ImageQuery. | ||||
Возврат | WEAVE_ERROR_INVALID_LIST_LENGTH Если сообщение содержало слишком длинный список IntegrityTypeList или UpdateSchemeList . |