summaryrefslogtreecommitdiffstats
path: root/src/corelib/json/qjsondocument.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/qjsondocument.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/qjsondocument.h')
-rw-r--r--src/corelib/json/qjsondocument.h177
1 files changed, 0 insertions, 177 deletions
diff --git a/src/corelib/json/qjsondocument.h b/src/corelib/json/qjsondocument.h
deleted file mode 100644
index b784890c54..0000000000
--- a/src/corelib/json/qjsondocument.h
+++ /dev/null
@@ -1,177 +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 QJSONDOCUMENT_H
-#define QJSONDOCUMENT_H
-
-#include <QtCore/qjsonvalue.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDebug;
-
-namespace QJsonPrivate {
- class Parser;
-}
-
-struct Q_CORE_EXPORT QJsonParseError
-{
- enum ParseError {
- NoError = 0,
- UnterminatedObject,
- MissingNameSeparator,
- UnterminatedArray,
- MissingValueSeparator,
- IllegalValue,
- TerminationByNumber,
- IllegalNumber,
- IllegalEscapeSequence,
- IllegalUTF8String,
- UnterminatedString,
- MissingObject,
- DeepNesting,
- DocumentTooLarge,
- GarbageAtEnd
- };
-
- QString errorString() const;
-
- int offset;
- ParseError error;
-};
-
-class Q_CORE_EXPORT QJsonDocument
-{
-public:
-#ifdef Q_LITTLE_ENDIAN
- static const uint BinaryFormatTag = ('q') | ('b' << 8) | ('j' << 16) | ('s' << 24);
-#else
- static const uint BinaryFormatTag = ('q' << 24) | ('b' << 16) | ('j' << 8) | ('s');
-#endif
-
- QJsonDocument();
- explicit QJsonDocument(const QJsonObject &object);
- explicit QJsonDocument(const QJsonArray &array);
- ~QJsonDocument();
-
- QJsonDocument(const QJsonDocument &other);
- QJsonDocument &operator =(const QJsonDocument &other);
-
- QJsonDocument(QJsonDocument &&other) Q_DECL_NOTHROW
- : d(other.d)
- {
- other.d = nullptr;
- }
-
- QJsonDocument &operator =(QJsonDocument &&other) Q_DECL_NOTHROW
- {
- swap(other);
- return *this;
- }
-
- void swap(QJsonDocument &other) Q_DECL_NOTHROW
- {
- qSwap(d, other.d);
- }
-
- enum DataValidation {
- Validate,
- BypassValidation
- };
-
- static QJsonDocument fromRawData(const char *data, int size, DataValidation validation = Validate);
- const char *rawData(int *size) const;
-
- static QJsonDocument fromBinaryData(const QByteArray &data, DataValidation validation = Validate);
- QByteArray toBinaryData() const;
-
- static QJsonDocument fromVariant(const QVariant &variant);
- QVariant toVariant() const;
-
- enum JsonFormat {
- Indented,
- Compact
- };
-
- static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = nullptr);
-
-#if !defined(QT_JSON_READONLY) || defined(Q_CLANG_QDOC)
- QByteArray toJson() const; //### Merge in Qt6
- QByteArray toJson(JsonFormat format) const;
-#endif
-
- bool isEmpty() const;
- bool isArray() const;
- bool isObject() const;
-
- QJsonObject object() const;
- QJsonArray array() const;
-
- void setObject(const QJsonObject &object);
- void setArray(const QJsonArray &array);
-
- const QJsonValue operator[](const QString &key) const;
- const QJsonValue operator[](QLatin1String key) const;
- const QJsonValue operator[](int i) const;
-
- bool operator==(const QJsonDocument &other) const;
- bool operator!=(const QJsonDocument &other) const { return !(*this == other); }
-
- bool isNull() const;
-
-private:
- friend class QJsonValue;
- friend class QJsonPrivate::Data;
- friend class QJsonPrivate::Parser;
- friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonDocument &);
-
- QJsonDocument(QJsonPrivate::Data *data);
-
- QJsonPrivate::Data *d;
-};
-
-Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6(QJsonDocument)
-
-#if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_JSON_READONLY)
-Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonDocument &);
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QJSONDOCUMENT_H