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 imagen.

Resumen

El marco de consulta de imagen tiene la siguiente forma sobre la línea

Longitud Nombre del campo
1 byte control de fotogramas
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 la configuración regional (opcional)
8 bytes ID del nodo de destino
variable datos específicos del proveedor (opcional)
donde el campo de control de trama tiene campos de bits como los siguientes:

Bit Significado
0 1 - Datos específicos del proveedor presentes, 0 - Ausente
1 1 - especificación de configuración regional presente, 0 - ausente
2 1 - ID de nodo de destino presente, 0 - no presente
3..7 Reservados
La ImageQuery, como una estructura en la que se lee un poco diferente de la representación en tránsito. En particular, la versión y la configuración regional son cadenas c terminadas con valores nulos (a diferencia de las tuplas (longitud, caracteres), y ambos elementos opcionales se representan como punteros anulables, de modo que no haya 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 string UTF-8 de longitud variable que contiene una string 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 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 string 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 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 PacketBuffer proporcionado.
print(void)
void

Funciones estáticas públicas

parse(PacketBuffer *, ImageQuery &)
Deserializa el mensaje de consulta de imagen proporcionado en un PacketBuffer 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 string debe cumplir con el formato del identificador de configuración regional POSIX, como se especifica en el estándar ISO/IEC 15897, p.ej., en_AU.UTF-8 para inglés australiano.

packageSpec

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 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 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 imagen.

El campo ID del nodo de destino suele usarse en instancias en las que el nodo que es el origen del mensaje IMAGE QUERY se utiliza como proxy de actualización de software para otro nodo.

theMetaData

ReferencedTLVData theMetaData

El campo de datos específico 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íficos del proveedor es opcional. Si está presente, el campo tiene una forma de estructura anónima codificada en el TLV. Las etiquetas que se presenten dentro de esta estructura deben ser etiquetas específicas del perfil completamente calificadas.

updateSchemes

UpdateSchemeList updateSchemes

Actualiza los esquemas (protocolos de descarga) que admite 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 que se realiza la consulta.

Debe tener una longitud de 32 años 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 de producto
[in] aVersion
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 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 con codificación 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 con esta ImageQuery
Qué muestra
true si todos los campos de ambos objetos son iguales, de lo contrario, false

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 empaquetar la consulta
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
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 PacketBuffer en una ImageQuery proporcionada.

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