En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

nl :: Tejido:: Perfiles: Actualización de software:: ImageQuery

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

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

Resumen

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

Largo Nombre del campo
1 byte control de cuadro
6 bytes especificaciones del 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 de nodo de destino
variable datos específicos del proveedor (opcional)
donde el campo de control de trama tiene campos de bits como sigue:

Un poco Significado
0 1 - datos específicos del proveedor presentes, 0 - no presentes
1 1: especificación de configuración regional presente, 0: no presente
2 1 - ID de nodo de destino presente, 0 - no presente
3..7 Reservado
ImageQuery , como estructura, se lee de forma ligeramente diferente a la representación en vuelo. En particular, la versión y la configuración regional son cadenas c terminadas en nulo (a diferencia de las tuplas (longitud, caracteres)) y ambos elementos opcionales se representan como punteros que aceptan valores NULL, 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 admitidos por 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 cadena UTF-8 de longitud variable que contiene una cadena de especificación de paquete específica del proveedor.
productSpec
Especificación de 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ífico del proveedor es de longitud variable y ocupa el resto de la carga útil del mensaje Weave, más allá de los campos descritos anteriormente.
updateSchemes
Actualice los esquemas (protocolos de descarga) admitidos por el dispositivo.
version
Una cadena UTF-8 de longitud variable que contiene la versión de software especificada por el proveedor del dispositivo para el que se realiza la consulta.

Funciones publicas

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

Funciones estáticas públicas

parse (PacketBuffer *, ImageQuery &)
Deserialice el mensaje de consulta de imagen proporcionado en un PacketBuffer en un ImageQuery proporcionado.

Atributos públicos

IntegrityTypes

IntegrityTypeList integrityTypes

Tipos de integridad admitidos por el dispositivo.

localeSpec

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 cadena debe ajustarse al formato de identificador de configuración regional POSIX, como se especifica en ISO / IEC 15897, por ejemplo, en_AU.UTF-8 para inglés australiano.

packageSpec

ReferencedString packageSpec

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

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

productSpec

ProductSpec productSpec

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

targetNodeId

uint64_t targetNodeId

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

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

El campo de identificación del nodo de destino se usa típicamente en casos en los que el nodo que es el origen del mensaje de CONSULTA DE IMAGEN sirve como un proxy de actualización de software para otro nodo.

theMetaData

ReferencedTLVData theMetaData

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

El campo codifica información específica del proveedor sobre el dispositivo para el que 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 por TLV. Las etiquetas presentadas dentro de esta estructura serán etiquetas específicas de perfil totalmente calificadas.

updateSchemes

UpdateSchemeList updateSchemes

Actualice los esquemas (protocolos de descarga) admitidos por el dispositivo.

versión

ReferencedString version

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

Debe tener una longitud de 32 o menos.

Funciones publicas

ImageQuery

 ImageQuery()

Constructor predeterminado para ImageQuery .

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

en eso

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

Inicialice explícitamente el objeto ImageQuery con los valores proporcionados.

Detalles
Parámetros
[in] aProductSpec
Especificaciones del producto.
[in] aVersion
Versión de software instalada actualmente.
[in] aTypeList
Los tipos de integridad admitidos por el cliente.
[in] aSchemeList
Los esquemas de actualización soportados por el cliente.
[in] aPackage
Una especificación de paquete opcional admitida por el cliente.
[in] aLocale
Una especificación de configuración regional opcional solicitada por el cliente.
[in] aTargetNodeId
Un ID de nodo de destino opcional.
[in] aMetaData
Un blob de datos de proveedor codificado en TLV opcional.
Devoluciones
WEAVE_NO_ERROR Incondicionalmente.

operador ==

bool operator==(
  const ImageQuery &
) const 

Un operador de igualdad.

Detalles
Parámetros
another
Una ImageQuery para comparar con esta ImageQuery
Devoluciones
Es verdadero si todos los campos en ambos objetos son iguales, falso en caso contrario

paquete

WEAVE_ERROR pack(
  PacketBuffer *
)

Serialice el ImageQuery subyacente en el PacketBuffer proporcionado.

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

impresión

void print(
  void
)

Funciones estáticas públicas

analizar gramaticalmente

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserialice el mensaje de consulta de imagen proporcionado en un PacketBuffer en un ImageQuery proporcionado.

Detalles
Parámetros
[in] aBuffer
Un puntero a un paquete desde el que analizar la consulta de imagen
[in] aQuery
Un objeto en el que poner el resultado
Devoluciones
WEAVE_NO_ERROR en caso de éxito
Devoluciones
WEAVE_ERROR_BUFFER_TOO_SMALL Si el mensaje era demasiado pequeño para contener todos los campos de ImageQuery
Devoluciones
WEAVE_ERROR_INVALID_LIST_LENGTH Si el mensaje contenía una IntegrityTypeList o la UpdateSchemeList que era demasiado larga