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

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

Uma classe que oferece suporte à criação e decodificação de mensagens de consulta de imagem.

Resumo

O frame de consulta de imagem tem a seguinte forma:

Comprimento Nome do campo
1 byte controle de frames
6 bytes especificação do produto
variável especificação da versão
2,4 bytes lista de tipos de integridade
2,5 bytes Atualizar lista de esquemas
variável especificação de localidade (opcional)
8 bytes ID do nó de destino
variável dados específicos do fornecedor (opcional)
em que o campo de controle do frame tem campos de bits da seguinte forma:

Bit Significado
0 1 - dados específicos do fornecedor presentes, 0 - ausentes
1 1 - especificação de localidade presente, 0 - ausente
2 1 - ID do nó de destino presente, 0 - ausente
3 a 7 Reservado
A ImageQuery como uma estrutura é um pouco diferente da representação em trânsito. Em particular, a versão e a localidade são strings c com terminação nula (ao contrário de tuplas de (comprimento, caracteres)). Os dois itens opcionais são representados como ponteiros anuláveis, portanto, não há um booleano separado para verificar.

Construtores e destruidores

ImageQuery()
Construtor padrão para ImageQuery.

Atributos públicos

integrityTypes
Tipos de integridade com suporte do dispositivo.
localeSpec
Uma string UTF-8 de comprimento variável que contém a localidade POSIX válida no dispositivo para o qual a consulta de imagem está sendo feita.
packageSpec
Uma string UTF-8 de comprimento variável que contém uma string de especificação de pacote específica do fornecedor.
productSpec
Especificação do produto que descreve o dispositivo que está fazendo a consulta de imagem.
targetNodeId
uint64_t
Um código de nó opcional do dispositivo para o qual a consulta está sendo feita.
theMetaData
O campo de dados específico do fornecedor tem tamanho variável e ocupa o restante da carga útil da mensagem do Weave, além dos campos descritos acima.
updateSchemes
Atualize os esquemas (protocolos de download) compatíveis com o dispositivo.
version
Uma string UTF-8 de comprimento variável que contém a versão do software especificada pelo fornecedor do dispositivo para o qual a consulta está sendo feita.

Funções públicas

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Inicialize explicitamente o objeto ImageQuery com os valores fornecidos.
operator==(const ImageQuery &) const
bool
Um operador de igualdade.
pack(PacketBuffer *)
Serialize a ImageQuery subjacente no PackageBuffer fornecido.
print(void)
void

Funções estáticas públicas

parse(PacketBuffer *, ImageQuery &)
Desserializa a mensagem de consulta de imagem fornecida em um PackageBuffer em uma ImageQuery fornecida.

Atributos públicos

integrityTypes

IntegrityTypeList integrityTypes

Tipos de integridade com suporte do dispositivo.

localeSpec

ReferencedString localeSpec

Uma string UTF-8 de comprimento variável que contém a localidade POSIX válida no dispositivo para o qual a consulta de imagem está sendo feita.

O conteúdo da string precisa estar em conformidade com o formato do identificador de localidade POSIX, conforme especificado no ISO/IEC 15897, por exemplo: en_AU.UTF-8 para inglês australiano.

packageSpec

ReferencedString packageSpec

Uma string UTF-8 de comprimento variável que contém uma string de especificação de pacote específica do fornecedor.

O conteúdo do campo descreve o tipo de contêiner desejado para a imagem do software, como "rpm", "deb", "tgz", "elf" etc. OBSERVAÇÃO: esse campo não é usado em implementações do protocolo do Nest.

productSpec

ProductSpec productSpec

Especificação do produto que descreve o dispositivo que está fazendo a consulta de imagem.

targetNodeId

uint64_t targetNodeId

Um código de nó opcional do dispositivo para o qual a consulta está sendo feita.

O campo de ID do nó de destino é opcional. Se ausente, o ID do nó de destino para a consulta será implicitamente o nó que era a origem da mensagem da consulta de imagem.

O campo de ID do nó de destino normalmente é usado em instâncias em que o nó que é a origem da mensagem da CONSULTA IMAGEM está servindo como um proxy de atualização de software para outro nó.

theMetaData

ReferencedTLVData theMetaData

O campo de dados específico do fornecedor tem tamanho variável e ocupa o restante da carga útil da mensagem do Weave, além dos campos descritos acima.

O campo codifica informações específicas do fornecedor sobre o dispositivo para o qual a consulta está sendo feita. O campo de dados específico do fornecedor é opcional. Se estiver presente, o campo terá uma forma de estrutura codificada em TLV anônima. As tags apresentadas nessa estrutura devem ser tags específicas do perfil totalmente qualificadas.

updateSchemes

UpdateSchemeList updateSchemes

Atualize os esquemas (protocolos de download) compatíveis com o dispositivo.

version

ReferencedString version

Uma string UTF-8 de comprimento variável que contém a versão do software especificada pelo fornecedor do dispositivo para o qual a consulta está sendo feita.

Deve ter 32 ou menos de comprimento.

Funções públicas

ImageQuery

 ImageQuery()

Construtor padrão para ImageQuery.

A ImageQuery pode ser preenchida chamando init() ou desserializando o objeto de uma mensagem.

init

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

Inicialize explicitamente o objeto ImageQuery com os valores fornecidos.

Detalhes
Parâmetros
[in] aProductSpec
Especificação do produto.
[in] aVersion
Versão do software instalada atualmente.
[in] aTypeList
Os tipos de integridade aceitos pelo cliente.
[in] aSchemeList
Os esquemas de atualização aceitos pelo cliente.
[in] aPackage
Uma especificação de pacote opcional aceita pelo cliente.
[in] aLocale
Uma especificação de localidade opcional solicitada pelo cliente.
[in] aTargetNodeId
Um código de nó de destino opcional.
[in] aMetaData
Um blob de dados do fornecedor opcional codificado em TLV.
Retornos
WEAVE_NO_ERROR Incondicionalmente.

operador==

bool operator==(
  const ImageQuery &
) const 

Um operador de igualdade.

Detalhes
Parâmetros
another
Uma ImageQuery para comparar com essa ImageQuery
Retornos
verdadeiro se todos os campos em ambos os objetos forem iguais; caso contrário, falso

pacote

WEAVE_ERROR pack(
  PacketBuffer *
)

Serialize a ImageQuery subjacente no PackageBuffer fornecido.

Detalhes
Parâmetros
[in] aBuffer
Um buffer de pacote no qual empacotar a consulta
Valores de retorno
WEAVE_NO_ERROR
Em caso de sucesso
WEAVE_ERROR_BUFFER_TOO_SMALL
Se a ImageQuery for muito grande para caber no buffer fornecido.

mostrar

void print(
  void
)

Funções estáticas públicas

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Desserialize a mensagem de consulta de imagem fornecida em um PackageBuffer em uma ImageQuery fornecida.

Detalhes
Parâmetros
[in] aBuffer
Um ponteiro para um pacote no qual analisar a consulta de imagem.
[in] aQuery
Um objeto no qual colocar o resultado
Retornos
WEAVE_NO_ERROR Em caso de sucesso
Retornos
WEAVE_ERROR_BUFFER_TOO_small Se a mensagem for muito pequena para conter todos os campos da ImageQuery.
Retornos
WEAVE_ERROR_INVALID_LIST_LENGTH Se a mensagem continha uma IntegrityTypeList ou uma UpdateSchemeList muito longa