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

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

Una classe per supportare la creazione e la decodifica di messaggi di query immagine.

Riepilogo

Il frame della query dell'immagine ha la forma seguente sull'immagine

Lunghezza Nome campo
1 byte controllo del frame
6 byte specifica del prodotto
variabile specifica della versione
2..4 byte elenco dei tipi di integrità
2..5 byte aggiorna elenco di schemi
variabile specifica delle impostazioni internazionali (facoltativo)
8 byte ID nodo target
variabile dati specifici del fornitore (facoltativo)
dove il campo di controllo del frame include campi di bit come segue:

Punta Significato
0 1 - dati specifici del fornitore presenti, 0 - non presente
1 1 - specifica locale presente, 0 - non presente
2 1: ID nodo di destinazione presente, 0 - non presente
3..7 Riservata
La query ImageQuery è una struttura leggermente diversa dalla rappresentazione in corso di pubblicazione. In particolare, la versione e le impostazioni internazionali sono stringhe c con terminazione null (al contrario delle tuple (lunghezza, caratteri)) ed entrambi gli elementi facoltativi sono rappresentati come puntatori con valore null, quindi non c'è un valore booleano separato da controllare.

Costruttori e distruttori

ImageQuery()
Costruttore predefinito per ImageQuery.

Attributi pubblici

integrityTypes
Tipi di integrità supportati dal dispositivo.
localeSpec
Una stringa UTF-8 a lunghezza variabile contenente le impostazioni internazionali POSIX in vigore sul dispositivo per il quale viene eseguita la query dell'immagine.
packageSpec
Una stringa UTF-8 a lunghezza variabile contenente una stringa delle specifiche del pacchetto specifica del fornitore.
productSpec
Specifica di prodotto che descrive il dispositivo che esegue la query sull'immagine.
targetNodeId
uint64_t
Un ID nodo facoltativo del dispositivo per il quale viene effettuata la query.
theMetaData
Il campo dei dati specifici del fornitore ha una lunghezza variabile e occupa la parte rimanente del payload dei messaggi Weave, oltre ai campi descritti in precedenza.
updateSchemes
Schemi di aggiornamento (protocolli di download) supportati dal dispositivo.
version
Una stringa UTF-8 a lunghezza variabile contenente la versione software del dispositivo per cui viene eseguita la query, specificata dal fornitore.

Funzioni pubbliche

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Inizializza in modo esplicito l'oggetto ImageQuery con i valori forniti.
operator==(const ImageQuery &) const
bool
Un operatore di uguaglianza.
pack(PacketBuffer *)
Serializza la query ImageQuery sottostante nel PacketBuffer fornito.
print(void)
void

Funzioni statiche pubbliche

parse(PacketBuffer *, ImageQuery &)
Deserializza il messaggio di query sull'immagine fornito in un PacketBuffer in un valore ImageQuery fornito.

Attributi pubblici

integrityTypes

IntegrityTypeList integrityTypes

Tipi di integrità supportati dal dispositivo.

localeSpec

ReferencedString localeSpec

Una stringa UTF-8 a lunghezza variabile contenente le impostazioni internazionali POSIX in vigore sul dispositivo per il quale viene eseguita la query dell'immagine.

I contenuti della stringa devono essere conformi al formato dell'identificatore locale POSIX, come specificato nello standard ISO/IEC 15897, ad esempio en_AU.UTF-8 per l'inglese australiano.

packageSpec

ReferencedString packageSpec

Una stringa UTF-8 a lunghezza variabile contenente una stringa delle specifiche del pacchetto specifica del fornitore.

Il contenuto del campo descrive il tipo di contenitore desiderato per l'immagine software, ad esempio "rpm", "deb", "tgz", "elf" e così via. NOTA: questo campo non è utilizzato nelle implementazioni Nest del protocollo.

productSpec

ProductSpec productSpec

Specifica di prodotto che descrive il dispositivo che esegue la query sull'immagine.

targetNodeId

uint64_t targetNodeId

Un ID nodo facoltativo del dispositivo per il quale viene effettuata la query.

Il campo ID nodo target è facoltativo. Se assente, l'ID nodo di destinazione per la query corrisponde implicitamente al nodo che è stato l'origine del messaggio di query dell'immagine.

Il campo ID nodo target viene generalmente utilizzato nelle istanze in cui il nodo origine del messaggio IMAGE QUERY funge da proxy di aggiornamento del software per un altro nodo.

theMetaData

ReferencedTLVData theMetaData

Il campo dei dati specifici del fornitore ha una lunghezza variabile e occupa la parte rimanente del payload dei messaggi Weave, oltre ai campi descritti in precedenza.

Il campo codifica le informazioni specifiche del fornitore sul dispositivo per il quale viene effettuata la query. Il campo dei dati specifici del fornitore è facoltativo. Se presente, il campo ha una forma di struttura anonima con codifica TLV. I tag presentati all'interno di questa struttura devono essere tag specifici del profilo completi.

updateSchemes

UpdateSchemeList updateSchemes

Schemi di aggiornamento (protocolli di download) supportati dal dispositivo.

versione

ReferencedString version

Una stringa UTF-8 a lunghezza variabile contenente la versione software del dispositivo per cui viene eseguita la query, specificata dal fornitore.

Deve avere una lunghezza massima di 32.

Funzioni pubbliche

ImageQuery

 ImageQuery()

Costruttore predefinito per ImageQuery.

Il campo ImageQuery può essere compilato chiamando init() o deserializzando l'oggetto da un messaggio.

init

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

Inizializza in modo esplicito l'oggetto ImageQuery con i valori forniti.

Dettagli
Parametri
[in] aProductSpec
Specifica del prodotto.
[in] aVersion
Versione attualmente installata del software.
[in] aTypeList
I tipi di integrità supportati dal client.
[in] aSchemeList
Gli schemi di aggiornamento supportati dal client.
[in] aPackage
Una specifica facoltativa del pacchetto supportata dal client.
[in] aLocale
Una specifica delle impostazioni internazionali facoltativa richiesta dal client.
[in] aTargetNodeId
Un ID nodo di destinazione facoltativo.
[in] aMetaData
Un blob di dati del fornitore facoltativo con codifica TLV.
Restituisce
WEAVE_NO_ERROR Incondizionatamente.

operatore==

bool operator==(
  const ImageQuery &
) const 

Un operatore di uguaglianza.

Dettagli
Parametri
another
Una ImageQuery da confrontare con questa ImageQuery.
Restituisce
true se tutti i campi in entrambi gli oggetti sono uguali, false negli altri casi

confezione

WEAVE_ERROR pack(
  PacketBuffer *
)

Serializza la query ImageQuery sottostante nel PacketBuffer fornito.

Dettagli
Parametri
[in] aBuffer
Un buffer dei pacchetti in cui pacchettizzare la query
Valori restituiti
WEAVE_NO_ERROR
In caso di esito positivo
WEAVE_ERROR_BUFFER_TOO_SMALL
Se la dimensione ImageQuery è troppo grande per il buffer fornito.

stampare (a schermo)

void print(
  void
)

Funzioni statiche pubbliche

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserializza il messaggio di query sull'immagine fornito in un PacketBuffer in un valore ImageQuery fornito.

Dettagli
Parametri
[in] aBuffer
Un puntatore a un pacchetto da cui analizzare la query dell'immagine
[in] aQuery
Un oggetto in cui inserire il risultato
Restituisce
WEAVE_NO_ERROR In caso di esito positivo
Restituisce
WEAVE_ERROR_BUFFER_TOO_Small Se il messaggio era troppo piccolo per contenere tutti i campi della query ImageQuery
Restituisce
WEAVE_ERROR_INVALID_LIST_LENGTH Se il messaggio conteneva un valore IntegrityTypeList o UpdateSchemeList troppo lungo