summaryrefslogtreecommitdiffstats
path: root/src/corelib/json/qjsonobject.h
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2017-12-12 18:32:19 -0800
committerThiago Macieira <thiago.macieira@intel.com>2018-01-26 20:59:50 +0000
commita6b697ca13945a174cff9f3e9b1af1cf61c0bea5 (patch)
tree78d5fad97ff8e89f079df29cc5a75b4e7197bfc7 /src/corelib/json/qjsonobject.h
parent657894624521b580f59ff5f58b9c0e9be159dc1c (diff)
Create corelib/serialization and move existing file formats into it
This is in preparation to adding CBOR support. We don't need yet another dir for CBOR and placing it in src/corelib/json is just wrong. Change-Id: I9741f017961b410c910dfffd14ffb9d870340fa6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib/json/qjsonobject.h')
-rw-r--r--src/corelib/json/qjsonobject.h271
1 files changed, 0 insertions, 271 deletions
diff --git a/src/corelib/json/qjsonobject.h b/src/corelib/json/qjsonobject.h
deleted file mode 100644
index 610bce694cd..00000000000
--- a/src/corelib/json/qjsonobject.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QJSONOBJECT_H
-#define QJSONOBJECT_H
-
-#include <QtCore/qjsonvalue.h>
-#include <QtCore/qiterator.h>
-#ifdef Q_COMPILER_INITIALIZER_LISTS
-#include <QtCore/qpair.h>
-#include <initializer_list>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QDebug;
-template <class Key, class T> class QMap;
-typedef QMap<QString, QVariant> QVariantMap;
-template <class Key, class T> class QHash;
-typedef QHash<QString, QVariant> QVariantHash;
-
-class Q_CORE_EXPORT QJsonObject
-{
-public:
- QJsonObject();
-
-#if defined(Q_COMPILER_INITIALIZER_LISTS) || defined(Q_QDOC)
- QJsonObject(std::initializer_list<QPair<QString, QJsonValue> > args)
- {
- initialize();
- for (std::initializer_list<QPair<QString, QJsonValue> >::const_iterator i = args.begin(); i != args.end(); ++i)
- insert(i->first, i->second);
- }
-#endif
-
- ~QJsonObject();
-
- QJsonObject(const QJsonObject &other);
- QJsonObject &operator =(const QJsonObject &other);
-
- QJsonObject(QJsonObject &&other) Q_DECL_NOTHROW
- : d(other.d), o(other.o)
- {
- other.d = nullptr;
- other.o = nullptr;
- }
-
- QJsonObject &operator =(QJsonObject &&other) Q_DECL_NOTHROW
- {
- swap(other);
- return *this;
- }
-
- void swap(QJsonObject &other) Q_DECL_NOTHROW
- {
- qSwap(d, other.d);
- qSwap(o, other.o);
- }
-
- static QJsonObject fromVariantMap(const QVariantMap &map);
- QVariantMap toVariantMap() const;
- static QJsonObject fromVariantHash(const QVariantHash &map);
- QVariantHash toVariantHash() const;
-
- QStringList keys() const;
- int size() const;
- inline int count() const { return size(); }
- inline int length() const { return size(); }
- bool isEmpty() const;
-
- QJsonValue value(const QString &key) const;
- QJsonValue value(QLatin1String key) const;
- QJsonValue operator[] (const QString &key) const;
- QJsonValue operator[] (QLatin1String key) const { return value(key); }
- QJsonValueRef operator[] (const QString &key);
- QJsonValueRef operator[] (QLatin1String key);
-
- void remove(const QString &key);
- QJsonValue take(const QString &key);
- bool contains(const QString &key) const;
- bool contains(QLatin1String key) const;
-
- bool operator==(const QJsonObject &other) const;
- bool operator!=(const QJsonObject &other) const;
-
- class const_iterator;
-
- class iterator
- {
- friend class const_iterator;
- friend class QJsonObject;
- QJsonObject *o;
- int i;
-
- public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef int difference_type;
- typedef QJsonValue value_type;
- typedef QJsonValueRef reference;
- typedef QJsonValuePtr pointer;
-
- Q_DECL_CONSTEXPR inline iterator() : o(nullptr), i(0) {}
- Q_DECL_CONSTEXPR inline iterator(QJsonObject *obj, int index) : o(obj), i(index) {}
-
- inline QString key() const { return o->keyAt(i); }
- inline QJsonValueRef value() const { return QJsonValueRef(o, i); }
- inline QJsonValueRef operator*() const { return QJsonValueRef(o, i); }
-#ifdef Q_QDOC
- inline QJsonValueRef* operator->() const;
-#else
- inline QJsonValueRefPtr operator->() const { return QJsonValueRefPtr(o, i); }
-#endif
- inline bool operator==(const iterator &other) const { return i == other.i; }
- inline bool operator!=(const iterator &other) const { return i != other.i; }
-
- inline iterator &operator++() { ++i; return *this; }
- inline iterator operator++(int) { iterator r = *this; ++i; return r; }
- inline iterator &operator--() { --i; return *this; }
- inline iterator operator--(int) { iterator r = *this; --i; return r; }
- inline iterator operator+(int j) const
- { iterator r = *this; r.i += j; return r; }
- inline iterator operator-(int j) const { return operator+(-j); }
- inline iterator &operator+=(int j) { i += j; return *this; }
- inline iterator &operator-=(int j) { i -= j; return *this; }
-
- public:
- inline bool operator==(const const_iterator &other) const { return i == other.i; }
- inline bool operator!=(const const_iterator &other) const { return i != other.i; }
- };
- friend class iterator;
-
- class const_iterator
- {
- friend class iterator;
- const QJsonObject *o;
- int i;
-
- public:
- typedef std::random_access_iterator_tag iterator_category;
- typedef int difference_type;
- typedef QJsonValue value_type;
- typedef QJsonValue reference;
- typedef QJsonValuePtr pointer;
-
- Q_DECL_CONSTEXPR inline const_iterator() : o(nullptr), i(0) {}
- Q_DECL_CONSTEXPR inline const_iterator(const QJsonObject *obj, int index)
- : o(obj), i(index) {}
- inline const_iterator(const iterator &other)
- : o(other.o), i(other.i) {}
-
- inline QString key() const { return o->keyAt(i); }
- inline QJsonValue value() const { return o->valueAt(i); }
- inline QJsonValue operator*() const { return o->valueAt(i); }
-#ifdef Q_QDOC
- inline QJsonValue* operator->() const;
-#else
- inline QJsonValuePtr operator->() const { return QJsonValuePtr(o->valueAt(i)); }
-#endif
- inline bool operator==(const const_iterator &other) const { return i == other.i; }
- inline bool operator!=(const const_iterator &other) const { return i != other.i; }
-
- inline const_iterator &operator++() { ++i; return *this; }
- inline const_iterator operator++(int) { const_iterator r = *this; ++i; return r; }
- inline const_iterator &operator--() { --i; return *this; }
- inline const_iterator operator--(int) { const_iterator r = *this; --i; return r; }
- inline const_iterator operator+(int j) const
- { const_iterator r = *this; r.i += j; return r; }
- inline const_iterator operator-(int j) const { return operator+(-j); }
- inline const_iterator &operator+=(int j) { i += j; return *this; }
- inline const_iterator &operator-=(int j) { i -= j; return *this; }
-
- inline bool operator==(const iterator &other) const { return i == other.i; }
- inline bool operator!=(const iterator &other) const { return i != other.i; }
- };
- friend class const_iterator;
-
- // STL style
- inline iterator begin() { detach2(); return iterator(this, 0); }
- inline const_iterator begin() const { return const_iterator(this, 0); }
- inline const_iterator constBegin() const { return const_iterator(this, 0); }
- inline iterator end() { detach2(); return iterator(this, size()); }
- inline const_iterator end() const { return const_iterator(this, size()); }
- inline const_iterator constEnd() const { return const_iterator(this, size()); }
- iterator erase(iterator it);
-
- // more Qt
- typedef iterator Iterator;
- typedef const_iterator ConstIterator;
- iterator find(const QString &key);
- iterator find(QLatin1String key);
- const_iterator find(const QString &key) const { return constFind(key); }
- const_iterator find(QLatin1String key) const { return constFind(key); }
- const_iterator constFind(const QString &key) const;
- const_iterator constFind(QLatin1String key) const;
- iterator insert(const QString &key, const QJsonValue &value);
-
- // STL compatibility
- typedef QJsonValue mapped_type;
- typedef QString key_type;
- typedef int size_type;
-
- inline bool empty() const { return isEmpty(); }
-
-private:
- friend class QJsonPrivate::Data;
- friend class QJsonValue;
- friend class QJsonDocument;
- friend class QJsonValueRef;
-
- friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &);
-
- QJsonObject(QJsonPrivate::Data *data, QJsonPrivate::Object *object);
- void initialize();
- // ### Qt 6: remove me and merge with detach2
- void detach(uint reserve = 0);
- bool detach2(uint reserve = 0);
- void compact();
-
- QString keyAt(int i) const;
- QJsonValue valueAt(int i) const;
- void setValueAt(int i, const QJsonValue &val);
-
- QJsonPrivate::Data *d;
- QJsonPrivate::Object *o;
-};
-
-Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QJsonObject)
-
-#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_JSON_READONLY)
-Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &);
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QJSONOBJECT_H