diff options
author | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-09-10 08:47:32 +0200 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-10-03 14:49:27 +0000 |
commit | 31f3facac32913074fe91b8f77e72be7c2f55a65 (patch) | |
tree | 1528f1f903485657ea4f5514988f344fed2dc888 | |
parent | e74cb37159b593b6c180949d56c99f4ea63986db (diff) |
Implement QDataStream operator for QCborSimpleValue
That allows us to remove custom handling in QMetaType.
Change-Id: Ic09fb96e1a05c6897803811d70aebbc6ea6e4f2e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r-- | examples/corelib/serialization/convert/cborconverter.cpp | 13 | ||||
-rw-r--r-- | src/corelib/kernel/qmetatype.cpp | 14 | ||||
-rw-r--r-- | src/corelib/serialization/qcborcommon.h | 5 | ||||
-rw-r--r-- | src/corelib/serialization/qcborstream.cpp | 16 |
4 files changed, 21 insertions, 27 deletions
diff --git a/examples/corelib/serialization/convert/cborconverter.cpp b/examples/corelib/serialization/convert/cborconverter.cpp index 41724c935e..f906c81062 100644 --- a/examples/corelib/serialization/convert/cborconverter.cpp +++ b/examples/corelib/serialization/convert/cborconverter.cpp @@ -84,19 +84,6 @@ static const char diagnosticHelp[] = QT_BEGIN_NAMESPACE -QDataStream &operator<<(QDataStream &ds, QCborSimpleType st) -{ - return ds << quint8(st); -} - -QDataStream &operator>>(QDataStream &ds, QCborSimpleType &st) -{ - quint8 v; - ds >> v; - st = QCborSimpleType(v); - return ds; -} - QDataStream &operator<<(QDataStream &ds, QCborTag tag) { return ds << quint64(tag); diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 3f47f03f42..1ba5f3979c 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -1485,12 +1485,6 @@ public: stream << qulonglong(*data); return true; } - bool delegate(const QCborSimpleType *data) - { - // TODO just define a normal QDataStream operator - stream << quint8(*data); - return true; - } bool delegate(const QMetaTypeSwitcher::NotBuiltinType *data) { const QVector<QCustomTypeInfo> * const ct = customTypes(); @@ -1542,14 +1536,6 @@ public: *const_cast<unsigned long*>(data) = l; return true; } - bool delegate(const QCborSimpleType *data) - { - // TODO just define a normal QDataStream operator - quint8 l; - stream >> l; - *const_cast<QCborSimpleType*>(data) = QCborSimpleType(l); - return true; - } bool delegate(const QMetaTypeSwitcher::NotBuiltinType *data) { const QVector<QCustomTypeInfo> * const ct = customTypes(); diff --git a/src/corelib/serialization/qcborcommon.h b/src/corelib/serialization/qcborcommon.h index 9661cd70bb..0147f85de8 100644 --- a/src/corelib/serialization/qcborcommon.h +++ b/src/corelib/serialization/qcborcommon.h @@ -133,6 +133,11 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, QCborKnownTags tg); Q_CORE_EXPORT QDebug operator<<(QDebug, QCborTag tg); #endif +#if !defined(QT_NO_DEBUG_STREAM) +QDataStream &operator<<(QDataStream &ds, QCborSimpleType st); +QDataStream &operator>>(QDataStream &ds, QCborSimpleType &st); +#endif + QT_END_NAMESPACE Q_DECLARE_METATYPE(QCborTag) diff --git a/src/corelib/serialization/qcborstream.cpp b/src/corelib/serialization/qcborstream.cpp index aed286a11f..38b809158a 100644 --- a/src/corelib/serialization/qcborstream.cpp +++ b/src/corelib/serialization/qcborstream.cpp @@ -44,6 +44,7 @@ #include <qbuffer.h> #include <qdebug.h> #include <qstack.h> +#include <qdatastream.h> QT_BEGIN_NAMESPACE @@ -170,6 +171,21 @@ Q_CORE_EXPORT const char *qt_cbor_simpletype_id(QCborSimpleType st) return nullptr; } +#if !defined(QT_NO_DATASTREAM) +QDataStream &operator<<(QDataStream &ds, QCborSimpleType st) +{ + return ds << quint8(st); +} + +QDataStream &operator>>(QDataStream &ds, QCborSimpleType &st) +{ + quint8 v; + ds >> v; + st = QCborSimpleType(v); + return ds; +} +#endif + #if !defined(QT_NO_DEBUG_STREAM) QDebug operator<<(QDebug dbg, QCborSimpleType st) { |