O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Tecer:: Perfis :: Atualização de software:: ImageQuery

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

Uma classe para oferecer suporte à criação e decodificação de mensagens de consulta de imagem.

Resumo

O quadro de consulta de imagem tem o seguinte formato durante a transmissão

Comprimento Nome do Campo
1 byte controle de quadro
6 bytes especificação do produto
variável especificação da versão
2..4 bytes lista de tipo de integridade
2..5 bytes atualizar lista de esquemas
variável especificação de local (opcional)
8 bytes ID do nó de destino
variável dados específicos do fornecedor (opcional)
onde o campo de controle de quadro tem campos de bits da seguinte forma:

Pedaço Significado
0 1 - dados específicos do fornecedor presentes, 0 - não presentes
1 1 - especificação de localidade presente, 0 - ausente
2 1 - ID do nó de destino presente, 0 - ausente
3..7 Reservado
O ImageQuery , como uma estrutura, é ligeiramente diferente da representação em vôo. Em particular, a versão e o local são strings c terminadas em nulos (em oposição a tuplas de (comprimento, caracteres)) e ambos os 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 suportados pelo dispositivo.
localeSpec
Uma string UTF-8 de comprimento variável contendo a localidade POSIX em vigor no dispositivo para o qual a consulta de imagem está sendo feita.
packageSpec
Uma string UTF-8 de comprimento variável contendo 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 id de nó opcional do dispositivo para o qual a consulta está sendo feita.
theMetaData
O campo de dados específico do fornecedor é variável em comprimento e ocupa o restante da carga útil da mensagem Weave, além dos campos descritos acima.
updateSchemes
Esquemas de atualização (protocolos de download) suportados pelo dispositivo.
version
Uma string UTF-8 de comprimento variável contendo a versão de 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 PacketBuffer fornecido.
print (void)
void

Funções estáticas públicas

parse (PacketBuffer *, ImageQuery &)
Desserialize a mensagem de consulta de imagem fornecida em um PacketBuffer em um ImageQuery fornecido.

Atributos públicos

IntegrityTypes

IntegrityTypeList integrityTypes

Tipos de integridade suportados pelo dispositivo.

localeSpec

ReferencedString localeSpec

Uma string UTF-8 de comprimento variável contendo a localidade POSIX em vigor no dispositivo para o qual a consulta de imagem está sendo feita.

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

packageSpec

ReferencedString packageSpec

Uma string UTF-8 de comprimento variável contendo 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. (NOTA: Este campo não é usado em implementações Nest do protocolo)

productSpec

ProductSpec productSpec

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

targetNodeId

uint64_t targetNodeId

Um id 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 é implicitamente o nó que foi a origem da mensagem de consulta de imagem.

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

theMetaData

ReferencedTLVData theMetaData

O campo de dados específico do fornecedor é variável em comprimento e ocupa o restante da carga útil da mensagem 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 presente, o campo tem uma forma de estrutura codificada por TLV anônima. As tags apresentadas nesta estrutura devem ser tags específicas de perfil totalmente qualificadas.

updateSchemes

UpdateSchemeList updateSchemes

Esquemas de atualização (protocolos de download) suportados pelo dispositivo.

versão

ReferencedString version

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

Deve ter comprimento de 32 ou menor.

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.

iniciar

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 suportados pelo cliente.
[in] aSchemeList
Os esquemas de atualização suportados pelo cliente.
[in] aPackage
Uma especificação de pacote opcional suportada pelo cliente.
[in] aLocale
Uma especificação de localidade opcional solicitada pelo cliente.
[in] aTargetNodeId
Um ID de nó de destino opcional.
[in] aMetaData
Um blob de dados do fornecedor codificado por TLV opcional.
Devoluções
WEAVE_NO_ERROR Incondicionalmente.

operador ==

bool operator==(
  const ImageQuery &
) const 

Um operador de igualdade.

Detalhes
Parâmetros
another
Uma ImageQuery para comparar com esta ImageQuery
Devoluções
verdadeiro se todos os campos em ambos os objetos forem iguais, falso caso contrário

pacote

WEAVE_ERROR pack(
  PacketBuffer *
)

Serialize a ImageQuery subjacente no PacketBuffer fornecido.

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

impressão

void print(
  void
)

Funções estáticas públicas

analisar

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Desserialize a mensagem de consulta de imagem fornecida em um PacketBuffer em um ImageQuery fornecido.

Detalhes
Parâmetros
[in] aBuffer
Um ponteiro para um pacote do qual analisar a consulta de imagem
[in] aQuery
Um objeto no qual colocar o resultado
Devoluções
WEAVE_NO_ERROR com sucesso
Devoluções
WEAVE_ERROR_BUFFER_TOO_SMALL Se a mensagem era muito pequena para conter todos os campos do ImageQuery
Devoluções
WEAVE_ERROR_INVALID_LIST_LENGTH Se a mensagem continha um IntegrityTypeList ou UpdateSchemeList muito longo