Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 09:09:10

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