<QtCborCommon>

Der Header <QtCborCommon> enthält Definitionen, die sowohl für die Streaming-Klassen (QCborStreamReader und QCborStreamWriter) als auch für QCborValue gelten. Mehr...

Header: #include <QtCborCommon>

Typen

enum class QCborKnownTags { DateTimeString, UnixTime_t, PositiveBignum, NegativeBignum, Decimal, …, Signature }
enum class QCborSimpleType { False, True, Null, Undefined }
enum class QCborTag { }

Ausführliche Beschreibung

Siehe auch QCborError.

Typdokumentation

enum class QCborKnownTags

Diese Enumeration enthält eine Liste von CBOR-Tags, die zum Zeitpunkt der Qt-Implementierung bekannt waren. Diese Liste erhebt keinen Anspruch auf Vollständigkeit und enthält nur Tags, die entweder durch einen RFC abgesichert sind oder speziell von der Qt-Implementierung verwendet werden.

Die maßgebliche Liste wird von der IANA im CBOR-Tag-Register gepflegt.

KonstanteWertBeschreibung
QCborKnownTags::DateTimeString0Eine Datums- und Zeitzeichenfolge, formatiert gemäß RFC 3339, ergänzt durch RFC 4287. Es handelt sich um dasselbe Format wie bei Qt::ISODate und Qt::ISODateWithMs.
QCborKnownTags::UnixTime_t1Eine numerische Darstellung der seit dem 01.01.1970 00:00 Uhr (TZ) verstrichenen Sekunden.
QCborKnownTags::PositiveBignum2Eine positive Zahl beliebiger Länge, kodiert als Byte-Array in Netzwerk-Byte-Reihenfolge. Beispielsweise wird die Zahl264 durch ein Byte-Array dargestellt, das den Byte-Wert 0x01 gefolgt von 8 Null-Bytes enthält.
QCborKnownTags::NegativeBignum3Eine negative Zahl beliebiger Länge, kodiert als der Absolutwert dieser Zahl minus eins. Beispielsweise stellt ein Byte-Array, das den Byte-Wert 0x02 gefolgt von 8 Null-Bytes enthält, die Zahl-265 - 1 dar.
QCborKnownTags::Decimal4Eine Dezimalzahl, kodiert als Array aus zwei Ganzzahlen: Die erste ist der Exponent der 10er-Potenz, die zweite die ganzzahlige Mantisse. Der Wert 273,15 würde als Array „ [-2, 27315] “ kodiert werden.
QCborKnownTags::Bigfloat5Ähnlich wie bei „Decimal“, allerdings ist der Exponent eine Potenz von 2.
QCborKnownTags::COSE_Encrypt016Eine „ Encrypt0 “-Zuordnung gemäß RFC 8152 (CBOR Object Signing and Encryption).
QCborKnownTags::COSE_Mac017Eine „ Mac0 “-Zuordnung gemäß RFC 8152 (CBOR Object Signing and Encryption).
QCborKnownTags::COSE_Sign118Eine „ Sign1 “-Zuordnung gemäß RFC 8152 (CBOR-Objektsignierung und -verschlüsselung).
QCborKnownTags::ExpectedBase64url21Gibt an, dass das Byte-Array mit Base64url kodiert werden soll, wenn der Datenstrom in JSON konvertiert wird.
QCborKnownTags::ExpectedBase6422Gibt an, dass das Byte-Array mit Base64 kodiert werden soll, wenn der Stream in JSON konvertiert wird.
QCborKnownTags::ExpectedBase1623Gibt an, dass das Byte-Array mit Base16 (hex) kodiert werden soll, wenn der Stream in JSON konvertiert wird.
QCborKnownTags::EncodedCbor24Gibt an, dass das Byte-Array einen CBOR-Stream enthält.
QCborKnownTags::Url32Gibt an, dass die Zeichenkette eine URL enthält.
QCborKnownTags::Base64url33Gibt an, dass die Zeichenkette Daten enthält, die mit Base64url kodiert sind.
QCborKnownTags::Base6434Gibt an, dass die Zeichenkette mit Base64 kodierte Daten enthält.
QCborKnownTags::RegularExpression35Gibt an, dass die Zeichenkette ein Perl-kompatibles Muster für reguläre Ausdrücke enthält.
QCborKnownTags::MimeMessage36Gibt an, dass die Zeichenkette eine MIME-Nachricht (gemäß RFC 2045) enthält.
QCborKnownTags::Uuid37Gibt an, dass das Byte-Array eine UUID enthält.
QCborKnownTags::COSE_Encrypt96Eine „ Encrypt “-Zuordnung gemäß RFC 8152 (CBOR Object Signing and Encryption).
QCborKnownTags::COSE_Mac97Eine „ Mac “-Zuordnung gemäß RFC 8152 (CBOR Object Signing and Encryption).
QCborKnownTags::COSE_Sign98Eine „ Sign “-Zuordnung gemäß RFC 8152 (CBOR-Objektsignierung und -verschlüsselung).
QCborKnownTags::Signature55799Keine Änderung bei der Interpretation; dieses Tag kann als äußerstes Tag in einem CBOR-Stream als Datei-Header verwendet werden.

Die folgenden Tags werden von „ QCborValue “ während der Dekodierung interpretiert und erzeugen Objekte mit erweiterten Qt-Typen; diese Tags werden bei der Kodierung derselben erweiterten Typen verwendet.

KonstanteWertBeschreibung
QCborKnownTags::DateTimeString0QDateTime
QCborKnownTags::UnixTime_t1QDateTime (nur bei der Dekodierung)
QCborKnownTags::Url32QUrl
QCborKnownTags::Uuid37QUuid

Wenn zudem ein „ QCborValue “, der ein „ QByteArray “ enthält, mit einem der Tags „ ExpectedBase64url “, „ ExpectedBase64 “ oder „ ExpectedBase16 “ versehen ist, verwendet „ QCborValue “ bei der Konvertierung in JSON die erwartete Kodierung (siehe QCborValue::toJsonValue).

Siehe auch QCborTag, QCborStreamWriter::append(QCborTag), QCborStreamReader::isTag(), QCborStreamReader::toTag(), QCborValue::isTag() und QCborValue::tag().

enum class QCborSimpleType

Diese Enumeration enthält die möglichen „Einfachen Typen“ für CBOR. Einfache Typen reichen von 0 bis 255 und sind Typen, die keinen weiteren Wert enthalten.

Derzeit sind folgende Werte bekannt:

KonstanteWertBeschreibung
QCborSimpleType::False20Ein boolescher Wert „false“.
QCborSimpleType::True21Ein boolescher Wert „true“.
QCborSimpleType::Null22Fehlender Wert (null).
QCborSimpleType::Undefined23Fehlender oder gelöschter Wert, in der Regel ein Fehler.

Die Qt-CBOR-API unterstützt die Kodierung und Dekodierung jedes einfachen Typs, sei es einer der oben genannten oder ein beliebiger anderer Wert.

Anwendungen sollten weitere Werte nur verwenden, wenn eine entsprechende Spezifikation veröffentlicht wurde; andernfalls kann die Interpretation und Validierung durch den Remote-Server fehlschlagen. Die Werte 24 bis 31 sind reserviert und dürfen nicht verwendet werden.

Die aktuell gültige Liste wird von der IANA im Simple Values-Register gepflegt.

Siehe auch QCborStreamWriter::append(QCborSimpleType), QCborStreamReader::isSimpleType(), QCborStreamReader::toSimpleType(), QCborValue::isSimpleType() und QCborValue::toSimpleType().

enum class QCborTag

Diese Enumeration enthält keine Aufzählung und dient ausschließlich dazu, einen typsicheren Zugriff auf ein CBOR-Tag zu ermöglichen.

CBOR-Tags sind 64-Bit-Zahlen, die generischen CBOR-Typen zugeordnet werden, um ihnen eine zusätzliche semantische Bedeutung zu verleihen. Ein `QCborTag` kann aus einer Aufzählung aus QCborKnownTags erstellt oder direkt durch Angabe der numerischen Darstellung gebildet werden.

Beispielsweise wird im folgenden Beispiel ein ` QCborValue ` erstellt, das ein Byte-Array enthält, das mit dem Tag 2 gekennzeichnet ist.

QCborValue(QCborTag(2), QByteArray("\x01\0\0\0\0\0\0\0\0", 9));

Siehe auch QCborKnownTags, QCborStreamWriter::append(QCborTag), QCborStreamReader::isTag(), QCborStreamReader::toTag(), QCborValue::isTag() und QCborValue::tag().

© 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.