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

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

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

Resumen

El marco de consulta de imágenes tiene la siguiente forma sobre el cable.

Longitud Nombre del campo
1 byte control de trama
6 bytes especificaciones 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 que el campo de control de trama tiene campos de bits como los siguientes:

Broca Significado
0 1 - Datos específicos del proveedor presentes, 0 - ausentes
1 1: Especificación de configuración regional presente, 0: ausente
2 1: ID de nodo de destino presente, 0: ausente
3..7 Reservados
La ImageQuery, como una estructura, se lee un poco diferente a la representación en tránsito. En particular, la versión y la configuración regional son cadenas c terminadas en nulo (a diferencia de tuplas (de longitud y caracteres)) y ambos elementos opcionales se representan como punteros anulables, por lo que no hay un valor 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 cadena UTF-8 de longitud variable que contiene una cadena de especificación de paquete específica del proveedor.
productSpec
Especificaciones del producto que describen el dispositivo que realiza la búsqueda de la imagen.
targetNodeId
uint64_t
Es un ID de nodo opcional del dispositivo por el que se realiza la consulta.
theMetaData
El campo de datos específicos del proveedor tiene una longitud variable y ocupa el resto de la carga útil del mensaje de Weave, más allá de los campos descritos anteriormente.
updateSchemes
Actualiza los esquemas (protocolos de descarga) que admite el dispositivo.
version
Una cadena UTF-8 de longitud variable que contiene la versión de software del dispositivo especificada por el proveedor 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 de forma explícita el objeto ImageQuery con los valores proporcionados.
operator==(const ImageQuery &) const
bool
Un operador de igualdad.
pack(PacketBuffer *)
Serializa la ImageQuery subyacente en el packageBuffer proporcionado.
print(void)
void

Funciones estáticas públicas

parse(PacketBuffer *, ImageQuery &)
Deserializa el mensaje de consulta de imagen proporcionado en un PackageBuffer en una ImageQuery proporcionada.

Atributos públicos

integrityTypes

IntegrityTypeList integrityTypes

Tipos de integridad que admite 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 cumplir con el formato de identificador de configuración regional POSIX, como se especifica en ISO/IEC 15897; p.ej., 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 de software, como "rpm", "deb", "tgz", "elf", etc. (NOTA: Este campo no se usa en las implementaciones de Nest del protocolo).

productSpec

ProductSpec productSpec

Especificaciones del producto que describen el dispositivo que realiza la búsqueda de la imagen.

targetNodeId

uint64_t targetNodeId

Es un ID de nodo opcional del dispositivo por el que se realiza la consulta.

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

El campo de ID de nodo de destino suele usarse cuando el nodo que es la fuente 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íficos del proveedor tiene una longitud variable 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 que se realiza la consulta. El campo de datos específico del proveedor es opcional. Si está presente, el campo tiene una forma de estructura anónima con codificación TLV. Las etiquetas que se presentan dentro de esta estructura deben ser etiquetas específicas del perfil completas.

updateSchemes

UpdateSchemeList updateSchemes

Actualiza los esquemas (protocolos de descarga) que admite el dispositivo.

versión

ReferencedString version

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

Debe tener una longitud de 32 caracteres o menos.

Funciones públicas

ImageQuery

 ImageQuery()

Constructor predeterminado para ImageQuery.

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

init

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

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

Detalles
Parámetros
[in] aProductSpec
Especificaciones del producto.
[in] aVersion
Es la versión del software instalada actualmente.
[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 que admite 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 opcional con codificación TLV.
Resultado que se muestra
WEAVE_NO_ERROR en todos los casos.

operador==

bool operator==(
  const ImageQuery &
) const 

Un operador de igualdad.

Detalles
Parámetros
another
Una ImageQuery para compararla con esta ImageQuery
Resultado que se muestra
true si todos los campos en ambos objetos son iguales; de lo contrario, false

paquete

WEAVE_ERROR pack(
  PacketBuffer *
)

Serializa la ImageQuery subyacente en el packageBuffer proporcionado.

Detalles
Parámetros
[in] aBuffer
Un búfer de paquetes en el que se empaquetará la consulta
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito
WEAVE_ERROR_BUFFER_TOO_SMALL
Si 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 imagen proporcionado en un PackageBuffer en una ImageQuery proporcionada.

Detalles
Parámetros
[in] aBuffer
Un puntero para un paquete desde el que se analiza la consulta de imagen
[in] aQuery
Un objeto en el que se mostrará el resultado
Resultado que se muestra
WEAVE_NO_ERROR si la operación se realizó correctamente
Resultado que se muestra
WEAVE_ERROR_BUFFER_TOO_SMALL Si el mensaje es demasiado pequeño para contener todos los campos de la ImageQuery
Resultado que se muestra
WEAVE_ERROR_INVALID_LIST_LENGTH Si el mensaje contenía una IntegrityTypeList o UpdateSchemeList demasiado larga