diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-06-19 13:43:00 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-10-21 19:12:51 +0200 |
commit | 35adb74ddd915831789f0175423660f8e898942e (patch) | |
tree | 3ac0fd8be75f0b7e0391149d13aab51a7f02dd3f /src/corelib/serialization/qjsonarray.h | |
parent | 559b563d711db0760a51b0dce26536dbc8766a9d (diff) |
Reimplement JSON support on top of Cbor
In turn, deprecate the QJsonDocument methods that deal with JSON binary
data. You should use CBOR for data serialization these days.
[ChangeLog][Deprecation Notice] The binary JSON representation is
deprecated. The CBOR format should be used instead.
Fixes: QTBUG-47629
Change-Id: Ic8b92ea36de87815b12307a9d8b1095f07166db8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/serialization/qjsonarray.h')
-rw-r--r-- | src/corelib/serialization/qjsonarray.h | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/corelib/serialization/qjsonarray.h b/src/corelib/serialization/qjsonarray.h index 983a6753b5..22aa996a3e 100644 --- a/src/corelib/serialization/qjsonarray.h +++ b/src/corelib/serialization/qjsonarray.h @@ -42,6 +42,7 @@ #include <QtCore/qjsonvalue.h> #include <QtCore/qiterator.h> +#include <QtCore/qshareddata.h> #include <initializer_list> QT_BEGIN_NAMESPACE @@ -56,25 +57,14 @@ class Q_CORE_EXPORT QJsonArray public: QJsonArray(); - QJsonArray(std::initializer_list<QJsonValue> args) - { - initialize(); - for (std::initializer_list<QJsonValue>::const_iterator i = args.begin(); i != args.end(); ++i) - append(*i); - } + QJsonArray(std::initializer_list<QJsonValue> args); ~QJsonArray(); QJsonArray(const QJsonArray &other); QJsonArray &operator =(const QJsonArray &other); - QJsonArray(QJsonArray &&other) noexcept - : d(other.d), - a(other.a) - { - other.d = nullptr; - other.a = nullptr; - } + QJsonArray(QJsonArray &&other) noexcept; QJsonArray &operator =(QJsonArray &&other) noexcept { @@ -113,7 +103,6 @@ public: void swap(QJsonArray &other) noexcept { - qSwap(d, other.d); qSwap(a, other.a); } @@ -245,20 +234,21 @@ public: typedef int difference_type; private: - friend class QJsonPrivate::Data; friend class QJsonValue; friend class QJsonDocument; + friend class QCborArray; friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonArray &); - QJsonArray(QJsonPrivate::Data *data, QJsonPrivate::Array *array); + QJsonArray(QCborContainerPrivate *array); void initialize(); void compact(); // ### Qt 6: remove me and merge with detach2 void detach(uint reserve = 0); bool detach2(uint reserve = 0); - QJsonPrivate::Data *d; - QJsonPrivate::Array *a; + // ### Qt 6: remove + void *dead = nullptr; + QExplicitlySharedDataPointer<QCborContainerPrivate> a; }; Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QJsonArray) |