<QtCborCommon>

Der <QtCborCommon>-Header 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 { }

Detaillierte Beschreibung

Siehe auch QCborError.

Typ-Dokumentation

enum class QCborKnownTags

Diese Aufzählung 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 unterstützt werden oder speziell von der Qt-Implementierung verwendet werden.

Die maßgebliche Liste wird von der IANA in der CBOR-Tag-Registry gepflegt.

KonstanteWertBeschreibung
QCborKnownTags::DateTimeString0Eine Datums- und Zeitzeichenkette, formatiert gemäß RFC 3339, verfeinert durch RFC 4287. Es handelt sich um das gleiche Format wie Qt::ISODate und Qt::ISODateWithMs.
QCborKnownTags::UnixTime_t1Eine numerische Darstellung der seit 1970-01-01T00:00Z verstrichenen Sekunden.
QCborKnownTags::PositiveBignum2Eine positive Zahl beliebiger Länge, kodiert als Byte-Array in Netzwerk-Byte-Reihenfolge. Zum Beispiel 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 absolute Wert dieser Zahl minus eins. Ein Byte-Array mit dem Byte-Wert 0x02, gefolgt von 8 Null-Bytes, repräsentiert zum Beispiel die Zahl -265 - 1.
QCborKnownTags::Decimal4Ein Dezimalbruch, kodiert als ein Array aus zwei ganzen Zahlen: 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, aber der Exponent ist stattdessen eine Potenz von 2.
QCborKnownTags::COSE_Encrypt016Eine Encrypt0 -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) beschrieben.
QCborKnownTags::COSE_Mac017Eine Mac0 -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) spezifiziert.
QCborKnownTags::COSE_Sign118Eine Sign1 -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) spezifiziert.
QCborKnownTags::ExpectedBase64url21Gibt an, dass das Byte-Array mit Base64url kodiert werden soll, wenn der Stream in JSON konvertiert wird.
QCborKnownTags::ExpectedBase6422Zeigt an, dass das Byte-Array mit Base64 kodiert werden soll, wenn der Stream in JSON konvertiert wird.
QCborKnownTags::ExpectedBase1623Zeigt an, dass das Byte-Array mit Base16 (hex) kodiert werden sollte, wenn der Stream in JSON konvertiert wird.
QCborKnownTags::EncodedCbor24Zeigt an, dass das Byte-Array einen CBOR-Stream enthält.
QCborKnownTags::Url32Zeigt an, dass die Zeichenfolge eine URL enthält.
QCborKnownTags::Base64url33Zeigt an, dass die Zeichenfolge Daten enthält, die mit Base64url kodiert sind.
QCborKnownTags::Base6434Zeigt an, dass die Zeichenfolge Daten enthält, die mit Base64 kodiert sind.
QCborKnownTags::RegularExpression35Zeigt an, dass die Zeichenfolge ein Perl-kompatibles Muster für reguläre Ausdrücke enthält.
QCborKnownTags::MimeMessage36Zeigt an, dass die Zeichenfolge eine MIME-Nachricht enthält (gemäß RFC 2045).
QCborKnownTags::Uuid37Zeigt an, dass das Byte-Array eine UUID enthält.
QCborKnownTags::COSE_Encrypt96Eine Encrypt -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) angegeben.
QCborKnownTags::COSE_Mac97Eine Mac -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) spezifiziert.
QCborKnownTags::COSE_Sign98Eine Sign -Map, wie in RFC 8152 (CBOR Object Signing and Encryption) spezifiziert.
QCborKnownTags::Signature55799Keine Änderung der Interpretation; dieser Tag kann als äußerster Tag in einem CBOR-Stream als Dateikopf verwendet werden.

Die folgenden Tags werden von QCborValue während der Dekodierung interpretiert und erzeugen Objekte mit erweiterten Qt-Typen, und sie verwenden diese Tags bei der Kodierung derselben erweiterten Typen.

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

Wenn ein QCborValue, das ein QByteArray enthält, mit einem der Tags ExpectedBase64url, ExpectedBase64 oder ExpectedBase16 versehen ist, verwendet QCborValue bei der Konvertierung nach 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 Aufzählung enthält die möglichen "Simple Types" für CBOR. Simple Types reichen von 0 bis 255 und sind Typen, die keinen weiteren Wert tragen.

Die folgenden Werte sind derzeit bekannt:

KonstanteWertBeschreibung
QCborSimpleType::False20Ein "falscher" boolescher Wert.
QCborSimpleType::True21Ein "wahrer" boolescher Wert.
QCborSimpleType::Null22Fehlender Wert (null).
QCborSimpleType::Undefined23Fehlender oder gelöschter Wert, normalerweise ein Fehler.

Qt CBOR API unterstützt die Kodierung und Dekodierung jedes Simple Type, ob einer der oben genannten oder ein anderer Wert.

Anwendungen sollten nur dann weitere Werte verwenden, wenn eine entsprechende Spezifikation veröffentlicht wurde, da sonst die Interpretation und Validierung durch die Gegenstelle fehlschlagen kann. Die Werte 24 bis 31 sind reserviert und dürfen nicht verwendet werden.

Die aktuelle maßgebliche Liste wird von der IANA in der Simple Values Registry verwaltet.

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

enum class QCborTag

Dieses Enum enthält keine Aufzählung und wird nur verwendet, um einen typsicheren Zugriff auf ein CBOR-Tag zu ermöglichen.

CBOR-Tags sind 64-Bit-Zahlen, die an generische CBOR-Typen angehängt werden, um ihnen weitere semantische Bedeutung zu verleihen. QCborTag kann aus einer Aufzählung in QCborKnownTags oder direkt durch Angabe der numerischen Darstellung erstellt werden.

Im Folgenden wird beispielsweise ein QCborValue erstellt, das ein Byte-Array mit dem Tag 2 enthält.

   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().

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