En Google, luchamos por la equidad racial de la comunidad negra. Más información
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

nl::Weave::Perfiles::SoftwareUpdate::ImageQuery

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

Una clase para admitir la creación y decodificación de mensajes de consulta de imágenes.

Resumen

El marco de consulta de la imagen tiene la siguiente forma sobre el cable

Duración Nombre del campo
1 byte control de marco
6 bytes especificación de producto
variable Especificación de la versión
2.4 bytes lista de tipos de integridad
2.5 bytes Actualizar lista de esquemas
variable especificación de configuración regional (opcional)
8 bytes ID del nodo de destino
variable datos específicos del proveedor (opcional)
En el ejemplo anterior, el campo de control de marcos tiene campos de bits de la siguiente manera:

Bit Significado
0 1: contiene información específica del proveedor; 0: no está presente.
1 1: Especificación de configuración regional presente, 0: no presente
2 1: ID del nodo de destino presente; 0: no presente
3,7 Reservado
La ImageQuery, como estructura, lee un poco diferente de la representación en tránsito. En particular, la versión y la configuración regional son strings c terminadas en null (en lugar de tuplas de (longitud, caracteres)) y ambos elementos opcionales se representan como punteros anulables, por lo que no hay un booleano separado para verificar.

Constructores y destructores

ImageQuery()
Constructor predeterminado para ImageQuery.

Atributos públicos

integrityTypes
Tipos de integridad que admite el dispositivo.
localeSpec
Una cadena UTF-8 de longitud variable que contiene la configuración regional POSIX vigente en el dispositivo para el que se realiza la consulta de imagen.
packageSpec
Una string UTF-8 de longitud variable que contiene una string de especificación de paquete específica del proveedor.
productSpec
Especificación del producto que describe el dispositivo que realiza la consulta de imagen.
targetNodeId
uint64_t
Un ID de nodo opcional del dispositivo para el que se realiza la consulta.
theMetaData
El campo de datos específicos del proveedor varía en longitud y ocupa el resto de la carga útil del mensaje de Weave, más allá de los campos descritos anteriormente.
updateSchemes
Actualizar esquemas (protocolos de descarga) compatibles con el dispositivo
version
Una string UTF-8 de longitud variable que contiene la versión de software especificada por el proveedor del dispositivo para el cual se realiza la consulta.

Funciones públicas

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Inicializa el objeto ImageQuery de forma explícita con los valores proporcionados.
operator==(const ImageQuery &) const
bool
Un operador de igualdad
pack(PacketBuffer *)
Serializa la ImageQuery subyacente en el PacketBuffer proporcionado.
print(void)
void

Funciones estáticas públicas

parse(PacketBuffer *, ImageQuery &)
Deserializa el mensaje de consulta de imágenes proporcionado en un PacketBuffer en una ImageQuery proporcionada.

Atributos públicos

Tipos de integridad

IntegrityTypeList integrityTypes

Tipos de integridad que admite el dispositivo.

configuración regional

ReferencedString localeSpec

Una cadena UTF-8 de longitud variable que contiene la configuración regional POSIX vigente en el dispositivo para el que se realiza la consulta de imagen.

El contenido de la string debe cumplir con el formato del identificador de configuración regional POSIX, como se especifica en la norma ISO/IEC 15897, p.ej., en_AU.UTF-8 para inglés australiano.

Especificación del paquete

ReferencedString packageSpec

Una string UTF-8 de longitud variable que contiene una string de especificación de paquete específica del proveedor.

El contenido del campo describe el tipo de contenedor deseado para la imagen de software, como “rpm”, “deb”, “tgz”, “elf”, etc. (NOTA: Este campo no se usa en las implementaciones del protocolo de Nest)

Especificación del producto

ProductSpec productSpec

Especificación del producto que describe el dispositivo que realiza la consulta de imagen.

ID del destino

uint64_t targetNodeId

Un ID de nodo opcional del dispositivo para el que se realiza la consulta.

El campo ID del nodo de destino es opcional. Si está ausente, el ID del nodo de destino para la consulta es implícitamente el nodo que fue la fuente del mensaje de consulta de la imagen.

Por lo general, el campo ID del nodo de destino se usa en instancias en las que el nodo que es la fuente del mensaje de IMAGE QUERY funciona como un proxy de actualización de software para otro nodo.

los metadatos

ReferencedTLVData theMetaData

El campo de datos específicos del proveedor varía en longitud y ocupa el resto de la carga útil del mensaje de Weave, más allá de los campos descritos anteriormente.

El campo codifica información específica del proveedor sobre el dispositivo para el cual se realiza la consulta. El campo de datos específicos del proveedor es opcional. Si está presente, el campo tiene una forma de estructura anónima codificada en TLV. Las etiquetas que se presenten dentro de esta estructura deben ser etiquetas específicas del perfil completamente calificadas.

updateSchemes

UpdateSchemeList updateSchemes

Actualizar esquemas (protocolos de descarga) compatibles con el dispositivo

version

ReferencedString version

Una string UTF-8 de longitud variable que contiene la versión de software especificada por el proveedor del dispositivo para el cual se realiza la consulta.

Debe tener una longitud de 32 o menos.

Funciones públicas

Búsqueda de imágenes

 ImageQuery()

Constructor predeterminado para ImageQuery.

La ImageQuery se puede propagar llamando a init() o deserializando el objeto de un mensaje.

init

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

Inicializa el objeto ImageQuery de forma explícita con los valores proporcionados.

Detalles
Parámetros
[in] aProductSpec
Especificación del producto.
[in] aVersion
La versión del software actualmente instalada.
[in] aTypeList
Los tipos de integridad que admite el cliente.
[in] aSchemeList
Los esquemas de actualización que admite el cliente.
[in] aPackage
Una especificación de paquete opcional compatible con el cliente.
[in] aLocale
Una especificación de configuración regional opcional que solicita el cliente.
[in] aTargetNodeId
Un ID de nodo de destino opcional.
[in] aMetaData
Un BLOB de datos del proveedor codificado en TLV opcional.
Qué muestra
WEAVE_NO_ERROR Incondicionalmente.

operador==

bool operator==(
  const ImageQuery &
) const 

Un operador de igualdad

Detalles
Parámetros
another
Una ImageQuery para verificar en esta ImageQuery
Qué muestra
true si todos los campos de ambos objetos son iguales y false de lo contrario

paquete

WEAVE_ERROR pack(
  PacketBuffer *
)

Serializa la ImageQuery subyacente en el PacketBuffer proporcionado.

Detalles
Parámetros
[in] aBuffer
Un búfer de paquete en el que se empaquetará la consulta
Valores de retorno
WEAVE_NO_ERROR
Al éxito
WEAVE_ERROR_BUFFER_TOO_SMALL
Si la ImageQuery es demasiado grande para caber en el búfer proporcionado.

imprimir

void print(
  void
)

Funciones estáticas públicas

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserializa el mensaje de consulta de imágenes proporcionado en un PacketBuffer en una ImageQuery proporcionada.

Detalles
Parámetros
[in] aBuffer
Un puntero para un paquete desde el cual analizar la consulta de imagen
[in] aQuery
Un objeto en el que se debe colocar el resultado
Qué muestra
WEAVE_NO_ERROR Si la operación fue exitosa
Qué muestra
WEAVE_ERROR_BUFFER_TOO_SMALL Si el mensaje es demasiado pequeño para contener todos los campos de ImageQuery
Qué muestra
WEAVE_ERROR_INVALID_LIST_LENGTH Si el mensaje contiene una IntegrityTypeList o una UpdateSchemeList demasiado larga.