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 sulle immagini.

Riepilogo

Il frame di query sull'immagine ha il seguente formato sulla rete

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 schemi
variabile specifica delle impostazioni internazionali (facoltativo)
8 byte ID nodo target
variabile dati specifici del fornitore (facoltativo)
in cui il campo di controllo del frame ha 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 target presente, 0 - non presente
3,.7 Prenotato
ImageQuery, in quanto struttura, si legge in modo leggermente diverso dalla rappresentazione "in-flight". In particolare, la versione e le impostazioni internazionali sono stringhe c con terminazione nullo (piuttosto che tuple (lunghezza, caratteri) ed entrambi gli elementi facoltativi sono rappresentati come puntatori nulli, quindi non esiste un valore booleano separato da verificare.

Costruttori e distruttori

ImageQuery()
Costruttore predefinito per ImageQuery.

Attributi pubblici

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

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 l'elemento ImageQuery sottostante nel PacketBuffer fornito.
print(void)
void

Funzioni statiche pubbliche

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

Attributi pubblici

integrityTypes

IntegrityTypeList integrityTypes

Tipi di integrità supportati dal dispositivo.

localeSpec

ReferencedString localeSpec

Una stringa UTF-8 di lunghezza variabile contenente le impostazioni internazionali POSIX attiva sul dispositivo per cui viene effettuata la query sull'immagine.

I contenuti della stringa devono essere conformi al formato degli identificatori internazionali 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 di lunghezza variabile contenente una stringa di specifiche del pacchetto specifico del fornitore.

I contenuti del campo descrivono 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 del prodotto che descrive il dispositivo che esegue la query sull'immagine.

targetNodeId

uint64_t targetNodeId

Un ID nodo facoltativo del dispositivo per cui viene eseguita la query.

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

Il campo ID nodo target viene solitamente utilizzato in istanze in cui il nodo che ha origine del messaggio QUERY IMAGE serve da proxy di aggiornamento software per un altro nodo.

theMetaData

ReferencedTLVData theMetaData

Il campo dei dati specifici del fornitore ha una lunghezza variabile e occupa la parte restante del payload di Weave, oltre i campi descritti sopra.

Il campo codifica le informazioni specifiche del fornitore sul dispositivo per cui 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 completi e specifici del profilo.

updateSchemes

UpdateSchemeList updateSchemes

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

versione

ReferencedString version

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

Deve essere di massimo 32 caratteri.

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
Specifiche del prodotto.
[in] aVersion
La versione del software attualmente installata.
[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 facoltativa delle impostazioni internazionali richiesta dal client.
[in] aTargetNodeId
Un ID nodo target facoltativo.
[in] aMetaData
Un blob facoltativo di dati dei fornitori con codifica TLV.
Restituisce
WEAVE_NO_ERROR Incondizionatamente.

operatore==

bool operator==(
  const ImageQuery &
) const 

Un operatore di uguaglianza.

Dettagli
Parametri
another
Una ImageQuery da verificare rispetto a questa ImageQuery.
Restituisce
true se tutti i campi in entrambi gli oggetti sono uguali, false in caso contrario

confezione

WEAVE_ERROR pack(
  PacketBuffer *
)

Serializza l'elemento ImageQuery sottostante nel PacketBuffer fornito.

Dettagli
Parametri
[in] aBuffer
Un buffer di pacchetti in cui pacchettizzare la query
Valori restituiti
WEAVE_NO_ERROR
In caso di successo
WEAVE_ERROR_BUFFER_TOO_SMALL
Se la dimensione di ImageQuery è troppo grande per poter essere inserita nel buffer fornito.

stampare (a schermo)

void print(
  void
)

Funzioni statiche pubbliche

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Deserializza il messaggio di query dell'immagine fornito in un PacketBuffer in un elemento ImageQuery fornito.

Dettagli
Parametri
[in] aBuffer
Un puntatore a un pacchetto da cui analizzare la query sull'immagine
[in] aQuery
Un oggetto in cui inserire il risultato
Restituisce
WEAVE_NO_ERROR Se l'operazione è andata a buon fine
Restituisce
WEAVE_ERROR_BUFFER_TOO_Small Se il messaggio era troppo piccolo per contenere tutti i campi della colonna ImageQuery
Restituisce
WEAVE_ERROR_INVALID_LIST_LENGTH Se il messaggio conteneva un valore IntegrityTypeList o UpdateSchemeList troppo lungo