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

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

Classe permettant de créer et de décoder des messages de requête d'image.

Résumé

Le cadre de requête d'image se présente comme suit sur le fil :

Longueur Nom du champ
1 octet contrôle du cadre
6 octets spécifications du produit
variable spécification de version
2,4 octets liste des types d'intégrité
2,5 octets mettre à jour la liste des schémas
variable Spécification des paramètres régionaux (facultatif)
8 octets ID du nœud cible
variable données spécifiques au fournisseur (facultatif)
où le champ Frame Control comporte des champs de bits comme suit:

Bit Signification
0 1 - données spécifiques au fournisseur présentes, 0 - absente
1 1 - spécification des paramètres régionaux présente, 0 - absent
2 1 - ID du nœud cible présent, 0 - absent
3..7 Réservé
La structure de ImageQuery se lit légèrement différemment de la représentation en cours de transfert. En particulier, la version et les paramètres régionaux sont des chaînes C se terminant par une valeur nulle (par opposition aux tuples (longueur, caractères)) et les deux éléments facultatifs sont représentés par des pointeurs pouvant avoir une valeur nulle. Il n'y a donc pas de valeur booléenne distincte à vérifier.

Constructeurs et destructeurs

ImageQuery()
Constructeur par défaut pour ImageQuery.

Attributs publics

integrityTypes
Types d'intégrité compatibles avec l'appareil.
localeSpec
Chaîne UTF-8 de longueur variable contenant les paramètres régionaux POSIX en vigueur sur l'appareil pour lequel la requête d'image est effectuée.
packageSpec
Chaîne UTF-8 de longueur variable contenant une chaîne de spécification de package spécifique au fournisseur.
productSpec
Spécifications produit décrivant l'appareil qui effectue la requête d'image.
targetNodeId
uint64_t
ID de nœud facultatif de l'appareil pour lequel la requête est effectuée.
theMetaData
Le champ de données spécifique au fournisseur est de longueur variable et occupe le reste de la charge utile du message Weave, au-delà des champs décrits ci-dessus.
updateSchemes
Schémas de mise à jour (protocoles de téléchargement) compatibles avec l'appareil
version
Chaîne UTF-8 de longueur variable contenant la version logicielle spécifiée par le fournisseur de l'appareil pour lequel la requête est effectuée.

Fonctions publiques

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Initialisez explicitement l'objet ImageQuery avec les valeurs fournies.
operator==(const ImageQuery &) const
bool
Opérateur d'égalité.
pack(PacketBuffer *)
Sérialise la requête ImageQuery sous-jacente dans le PaquetBuffer fourni.
print(void)
void

Fonctions statiques publiques

parse(PacketBuffer *, ImageQuery &)
Désérialiser le message de requête d'image fourni dans un PaquetBuffer en un objet ImageQuery fourni

Attributs publics

integrityTypes

IntegrityTypeList integrityTypes

Types d'intégrité compatibles avec l'appareil.

localeSpec

ReferencedString localeSpec

Chaîne UTF-8 de longueur variable contenant les paramètres régionaux POSIX en vigueur sur l'appareil pour lequel la requête d'image est effectuée.

Le contenu de la chaîne doit respecter le format d'identifiant des paramètres régionaux POSIX, tel que spécifié dans la norme ISO/IEC 15897 (par exemple, en_AU.UTF-8 pour l'anglais australien.)

packageSpec

ReferencedString packageSpec

Chaîne UTF-8 de longueur variable contenant une chaîne de spécification de package spécifique au fournisseur.

Le contenu du champ décrit le type de conteneur souhaité pour l'image du logiciel, par exemple "rpm", "deb", "tgz", "elf", etc. (REMARQUE: ce champ n'est pas utilisé dans les implémentations Nest du protocole.)

productSpec

ProductSpec productSpec

Spécifications produit décrivant l'appareil qui effectue la requête d'image.

targetNodeId

uint64_t targetNodeId

ID de nœud facultatif de l'appareil pour lequel la requête est effectuée.

Le champ d'ID du nœud cible est facultatif. S'il est absent, l'ID de nœud cible de la requête est implicitement le nœud qui était la source du message de requête d'image.

Le champ d'ID de nœud cible est généralement utilisé dans les cas où le nœud qui est la source du message IMAGE QUERY sert de proxy de mise à jour logicielle pour un autre nœud.

theMetaData

ReferencedTLVData theMetaData

Le champ de données spécifique au fournisseur est de longueur variable et occupe le reste de la charge utile du message Weave, au-delà des champs décrits ci-dessus.

Le champ encode les informations spécifiques au fournisseur concernant l'appareil pour lequel la requête est effectuée. Le champ de données spécifiques au fournisseur est facultatif. S'il est présent, le champ présente une forme de structure anonyme encodée en TLV. Les balises présentées dans cette structure doivent être des balises complètes et spécifiques au profil.

updateSchemes

UpdateSchemeList updateSchemes

Schémas de mise à jour (protocoles de téléchargement) compatibles avec l'appareil

version

ReferencedString version

Chaîne UTF-8 de longueur variable contenant la version logicielle spécifiée par le fournisseur de l'appareil pour lequel la requête est effectuée.

Il ne doit pas dépasser 32 caractères.

Fonctions publiques

ImageQuery

 ImageQuery()

Constructeur par défaut pour ImageQuery.

La valeur ImageQuery peut être renseignée en appelant init() ou en désérialisant l'objet à partir d'un message.

init

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

Initialisez explicitement l'objet ImageQuery avec les valeurs fournies.

Détails
Paramètres
[in] aProductSpec
Spécifications du produit.
[in] aVersion
Version du logiciel actuellement installée.
[in] aTypeList
Types d'intégrité acceptés par le client.
[in] aSchemeList
Schémas de mise à jour acceptés par le client.
[in] aPackage
Spécification de package facultative prise en charge par le client.
[in] aLocale
Spécification de paramètres régionaux facultative demandée par le client.
[in] aTargetNodeId
ID de nœud cible facultatif.
[in] aMetaData
Blob de données de fournisseur encodé en TLV (facultatif).
Renvoie
WEAVE_NO_ERROR sans condition.

opérateur==

bool operator==(
  const ImageQuery &
) const 

Opérateur d'égalité.

Détails
Paramètres
another
Une requête ImageQuery à comparer à ImageQuery
Renvoie
"true" si tous les champs des deux objets sont égaux, "false" dans le cas contraire

pack

WEAVE_ERROR pack(
  PacketBuffer *
)

Sérialise la requête ImageQuery sous-jacente dans le PaquetBuffer fourni.

Détails
Paramètres
[in] aBuffer
Un tampon de paquets dans lequel empaqueter la requête
Valeurs de retour
WEAVE_NO_ERROR
En cas de réussite
WEAVE_ERROR_BUFFER_TOO_SMALL
Si la classe ImageQuery est trop volumineuse pour tenir dans le tampon fourni.

presse

void print(
  void
)

Fonctions statiques publiques

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Désérialiser le message de requête d'image fourni dans un PaquetBuffer en un objet ImageQuery fourni

Détails
Paramètres
[in] aBuffer
Un pointeur vers un paquet à partir duquel analyser la requête d'image
[in] aQuery
Objet dans lequel placer le résultat
Renvoie
WEAVE_NO_ERROR En cas de réussite
Renvoie
WEAVE_ERROR_BUFFER_TOO_Small Si le message est trop petit pour contenir tous les champs d'ImageQuery
Renvoie
WEAVE_ERROR_INVALID_LIST_LENGTH Si le message contenait une liste IntegrityTypeList ou une UpdateSchemeList trop longue