File indexing completed on 2026-03-29 08:28:36
0001
0002
0003
0004
0005 #ifndef QCBORCOMMON_H
0006 #define QCBORCOMMON_H
0007
0008 #include <QtCore/qobjectdefs.h>
0009 #include <QtCore/qmetatype.h>
0010 #include <QtCore/qshareddata.h>
0011
0012 #if 0
0013 #pragma qt_class(QtCborCommon)
0014 #endif
0015
0016
0017 #if defined(False) && defined(True)
0018 # undef True
0019 # undef False
0020 #endif
0021
0022 QT_BEGIN_NAMESPACE
0023
0024 class QDebug;
0025
0026 class QCborContainerPrivate;
0027 QT_DECLARE_QESDP_SPECIALIZATION_DTOR(QCborContainerPrivate)
0028
0029 enum class QCborSimpleType : quint8 {
0030 False = 20,
0031 True = 21,
0032 Null = 22,
0033 Undefined = 23
0034 };
0035
0036 enum class QCborTag : quint64 {};
0037 enum class QCborKnownTags {
0038 DateTimeString = 0,
0039 UnixTime_t = 1,
0040 PositiveBignum = 2,
0041 NegativeBignum = 3,
0042 Decimal = 4,
0043 Bigfloat = 5,
0044 COSE_Encrypt0 = 16,
0045 COSE_Mac0 = 17,
0046 COSE_Sign1 = 18,
0047 ExpectedBase64url = 21,
0048 ExpectedBase64 = 22,
0049 ExpectedBase16 = 23,
0050 EncodedCbor = 24,
0051 Url = 32,
0052 Base64url = 33,
0053 Base64 = 34,
0054 RegularExpression = 35,
0055 MimeMessage = 36,
0056 Uuid = 37,
0057 COSE_Encrypt = 96,
0058 COSE_Mac = 97,
0059 COSE_Sign = 98,
0060 Signature = 55799
0061 };
0062
0063 inline bool operator==(QCborTag t, QCborKnownTags kt) { return quint64(t) == quint64(kt); }
0064 inline bool operator==(QCborKnownTags kt, QCborTag t) { return quint64(t) == quint64(kt); }
0065 inline bool operator!=(QCborTag t, QCborKnownTags kt) { return quint64(t) != quint64(kt); }
0066 inline bool operator!=(QCborKnownTags kt, QCborTag t) { return quint64(t) != quint64(kt); }
0067
0068 struct Q_CORE_EXPORT QCborError
0069 {
0070 Q_GADGET
0071 public:
0072 enum Code : int {
0073 UnknownError = 1,
0074 AdvancePastEnd = 3,
0075 InputOutputError = 4,
0076 GarbageAtEnd = 256,
0077 EndOfFile,
0078 UnexpectedBreak,
0079 UnknownType,
0080 IllegalType,
0081 IllegalNumber,
0082 IllegalSimpleType,
0083
0084 InvalidUtf8String = 516,
0085
0086 DataTooLarge = 1024,
0087 NestingTooDeep,
0088 UnsupportedType,
0089
0090 NoError = 0
0091 };
0092 Q_ENUM(Code)
0093
0094 Code c;
0095 operator Code() const { return c; }
0096 QString toString() const;
0097 };
0098
0099 #if !defined(QT_NO_DEBUG_STREAM)
0100 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborSimpleType st);
0101 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborKnownTags tg);
0102 Q_CORE_EXPORT QDebug operator<<(QDebug, QCborTag tg);
0103 #endif
0104
0105 #if !defined(QT_NO_DATASTREAM)
0106 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &ds, QCborSimpleType st);
0107 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &ds, QCborSimpleType &st);
0108 #endif
0109
0110 inline size_t qHash(QCborSimpleType tag, size_t seed = 0)
0111 {
0112 return qHash(quint8(tag), seed);
0113 }
0114
0115 inline size_t qHash(QCborTag tag, size_t seed = 0)
0116 {
0117 return qHash(quint64(tag), seed);
0118 }
0119
0120 enum class QCborNegativeInteger : quint64 {};
0121
0122 QT_END_NAMESPACE
0123
0124 QT_DECL_METATYPE_EXTERN(QCborTag, Q_CORE_EXPORT)
0125
0126 #endif