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 Frame Control
6 octets spécifications du produit
variable spécification de la 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 contient des champs de bits comme suit:

Foret Signification
0 1 - données spécifiques au fournisseur présentes, 0 - absentes
1 1 : spécification des paramètres régionaux présente, 0 : absente
2 1 – ID du nœud cible présent, 0 – absent
3..7 Réservé
La classe ImageQuery, qui lit une structure légèrement différente de la représentation en cours de transfert En particulier, la version et les paramètres régionaux sont des chaînes c terminées par une valeur nulle (par opposition aux tuples (longueur, caractères)). 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écification du produit décrivant l'appareil à l'origine de la requête d'image.
targetNodeId
uint64_t
Identifiant 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érialisez l'objet ImageQuery sous-jacent dans le PacketBuffer fourni.
print(void)
void

Fonctions statiques publiques

parse(PacketBuffer *, ImageQuery &)
Désérialiser le message de requête d'image fourni dans un PacketBuffer dans une classe ImageQuery fournie.

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 de l'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 logicielle, tel que "rpm", "deb", "tgz", "elf", etc. (REMARQUE: ce champ n'est pas utilisé dans les implémentations Nest du protocole)

productSpec

ProductSpec productSpec

Spécification du produit décrivant l'appareil à l'origine de la requête d'image.

targetNodeId

uint64_t targetNodeId

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

Le champ "ID du nœud cible" est facultatif. S'il est absent, l'ID du 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 du nœud cible est généralement utilisé dans les instances 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 propres au fournisseur est facultatif. S'il est présent, le champ présente une structure anonyme encodée au format TLV. Les tags présentés dans cette structure doivent être des tags complets 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 classe 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 classe ImageQuery à comparer à cette ImageQuery
Renvoie
"true" si tous les champs des deux objets sont égaux, "false" dans le cas contraire

pack

WEAVE_ERROR pack(
  PacketBuffer *
)

Sérialisez l'objet ImageQuery sous-jacent dans le PacketBuffer fourni.

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

imprimer

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 PacketBuffer dans une classe ImageQuery fournie.

Détails
Paramètres
[in] aBuffer
Un pointeur vers un paquet à partir duquel la requête d'image doit être analysée
[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 était trop petit pour contenir tous les champs de la classe ImageQuery
Renvoie
WEAVE_ERROR_INVALID_LIST_LENGTH : si le message contenait une liste IntegrityTypeList ou UpdateSchemeList trop longue