Analyse et affichage des données CBOR
Démonstration de l'analyse des fichiers au format CBOR.
Cet exemple montre comment utiliser la classe QCborStreamReader directement pour analyser le contenu CBOR. Le programme cbordump lit le contenu au format CBOR à partir de fichiers ou de l'entrée standard et affiche le contenu décodé sur stdout dans un format lisible par l'homme. Il peut produire une sortie en notation de diagnostic CBOR (qui est similaire à JSON), ou il peut produire une sortie verbeuse où chaque octet entré est affiché avec son encodage à côté de lui.

La classe CborDumper
La classe CborDumper contient un objet QCborStreamReader qui est initialisé à l'aide de l'argument QFile transmis au constructeur de CborDumper. En fonction des arguments, la fonction dump appelle soit dumpOne() soit dumpOneDetailed() pour transférer le contenu sur la sortie standard,
struct CborDumper { enum DumpOption { ShowCompact = 0x01, ShowWidthIndicators = 0x02, ShowAnnotated = 0x04 }; Q_DECLARE_FLAGS(DumpOptions, DumpOption) CborDumper(QFile *f, DumpOptions opts_); QCborError dump(); private: void dumpOne(int nestingLevel); void dumpOneDetailed(int nestingLevel); void printByteArray(const QByteArray &ba); void printWidthIndicator(quint64 value, char space = '\0'); void printStringWidthIndicator(quint64 value); QCborStreamReader reader; QByteArray data; QStack<quint8> byteArrayEncoding; qint64 offset = 0; DumpOptions opts; };
La fonction dumpOne()
L'activation de QCborStreamReader::type() permet d'imprimer en fonction du type de la valeur courante dans le flux. Si le type est un tableau ou une carte, le contenu de la valeur est itéré, et pour chaque entrée, la fonction dumpOne() est appelée récursivement avec un argument d'indentation plus élevé. Si le type est une balise, elle est imprimée et dumpOne() est appelée une fois sans augmenter l'argument d'indentation.
La fonction dumpOneDetailed()
Cette fonction affiche à la fois les octets entrants et le contenu décodé sur la même ligne. Elle utilise des fonctions lambda pour imprimer les octets et le contenu décodé, mais sa structure est similaire à celle de dumpOne().
CborTagDescription
Le tableau tagDescriptions, qui décrit les balises CBOR disponibles, est généré automatiquement à partir d'un fichier XML disponible sur le site web iana.org. Lorsque dumpOneDetailed() signale une balise, il utilise la description de cette table.
Voir aussi QCborStreamReader et CBOR Support in Qt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.