summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/snippets
diff options
context:
space:
mode:
authorOleksii Zbykovskyi <Oleksii.Zbykovskyi@qt.io>2025-07-25 10:02:39 +0200
committerOleksii Zbykovskyi <Oleksii.Zbykovskyi@qt.io>2025-07-25 20:36:21 +0200
commit72dcdf9b66bf5f66e4bd392b27fc24510b2ee298 (patch)
treefdd99daa17277e4df8ba3657c38e2cf7868eb222 /src/corelib/doc/snippets
parenta74a1ee297ad4540d9b28e2cdeebe02eafe3c3a7 (diff)
Fix of files under serialization prefix
Made each file compilable and added them to the build system. Task-number: QTBUG-137566 Change-Id: I3127773b2ca90b52597ac491c49d35f2c295a05e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/doc/snippets')
-rw-r--r--src/corelib/doc/snippets/code/CMakeLists.txt4
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp559
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_serialization_qcborvalue.cpp36
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_serialization_qdatastream.cpp6
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_serialization_qjsonobject.cpp29
5 files changed, 353 insertions, 281 deletions
diff --git a/src/corelib/doc/snippets/code/CMakeLists.txt b/src/corelib/doc/snippets/code/CMakeLists.txt
index 31f676031b9..a90562d7425 100644
--- a/src/corelib/doc/snippets/code/CMakeLists.txt
+++ b/src/corelib/doc/snippets/code/CMakeLists.txt
@@ -49,6 +49,10 @@ add_library(corelib_snippets_code OBJECT
src_corelib_mimetype_qmimedatabase.cpp
src_corelib_plugin_qlibrary.cpp
src_corelib_plugin_quuid.cpp
+ src_corelib_serialization_qcborstream.cpp
+ src_corelib_serialization_qcborvalue.cpp
+ src_corelib_serialization_qdatastream.cpp
+ src_corelib_serialization_qjsonobject.cpp
)
target_link_libraries(corelib_snippets_code PRIVATE
diff --git a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp
index e3483d9683e..a3ff8bed7c9 100644
--- a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp
@@ -1,317 +1,366 @@
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-using namespace Qt::StringLiterals;
-
-//! [0]
- QCborValue(QCborTag(2), QByteArray("\x01\0\0\0\0\0\0\0\0", 9));
-//! [0]
+#include <QFile>
+#include <QCborStreamWriter>
+#include <QCborStreamReader>
+#include <QCborValue>
-//! [1]
using namespace Qt::StringLiterals;
-// ...
- writer.startMap(4); // 4 elements in the map
-
- writer.append("label"_L1);
- writer.append("journald"_L1);
-
- writer.append("autoDetect"_L1);
- writer.append(false);
-
- writer.append("condition"_L1);
- writer.append("libs.journald"_L1);
-
- writer.append("output"_L1);
- writer.startArray(1);
- writer.append("privateFeature"_L1);
- writer.endArray();
- writer.endMap();
-//! [1]
-
-//! [2]
- QFile f("output", QIODevice::WriteOnly);
- QCborStreamWriter writer(&f);
- writer.startMap(0);
- writer.endMap();
-//! [2]
+void examples(QCborStreamWriter &writer)
+{
+ {
+ //! [0]
+ QCborValue(QCborTag(2), QByteArray("\x01\0\0\0\0\0\0\0\0", 9));
+ //! [0]
+ }
+
+ {
+ //! [1]
+ using namespace Qt::StringLiterals;
+ // ...
+ writer.startMap(4); // 4 elements in the map
+
+ writer.append("label"_L1);
+ writer.append("journald"_L1);
+
+ writer.append("autoDetect"_L1);
+ writer.append(false);
+
+ writer.append("condition"_L1);
+ writer.append("libs.journald"_L1);
+
+ writer.append("output"_L1);
+ writer.startArray(1);
+ writer.append("privateFeature"_L1);
+ writer.endArray();
+
+ writer.endMap();
+ //! [1]
+ }
+
+ {
+ //! [2]
+ QFile f("output");
+ QCborStreamWriter writer(&f);
+ writer.startMap(0);
+ writer.endMap();
+ //! [2]
+ }
+}
//! [3]
- QByteArray encodedNumber(qint64 value)
- {
- QByteArray ba;
- QCborStreamWriter writer(&ba);
- writer.append(value);
- return ba;
- }
+QByteArray encodedNumber(qint64 value)
+{
+ QByteArray ba;
+ QCborStreamWriter writer(&ba);
+ writer.append(value);
+ return ba;
+}
//! [3]
-//! [4]
- writer.append(0U);
- writer.append(Q_UINT64_C(4294967296));
- writer.append(std::numeric_limits<quint64>::max());
-//! [4]
-
-//! [5]
- writer.append(0);
- writer.append(-1);
- writer.append(Q_INT64_C(4294967296));
- writer.append(std::numeric_limits<qint64>::max());
-//! [5]
-
-//! [6]
- writer.append(QCborNegativeInteger(1));
- writer.append(QCborNegativeInteger(Q_INT64_C(4294967296)));
- writer.append(QCborNegativeInteger(-quint64(std::numeric_limits<qint64>::min())));
-//! [6]
-
+void writer_examples(QCborStreamWriter &writer)
+{
+ //! [4]
+ writer.append(0U);
+ writer.append(Q_UINT64_C(4294967296));
+ writer.append(std::numeric_limits<quint64>::max());
+ //! [4]
+
+ //! [5]
+ writer.append(0);
+ writer.append(-1);
+ writer.append(Q_INT64_C(4294967296));
+ writer.append(std::numeric_limits<qint64>::max());
+ //! [5]
+
+ //! [6]
+ writer.append(QCborNegativeInteger(1));
+ writer.append(QCborNegativeInteger(Q_INT64_C(4294967296)));
+ writer.append(QCborNegativeInteger(-quint64(std::numeric_limits<qint64>::min())));
+ //! [6]
+}
//! [7]
- void writeFile(QCborStreamWriter &writer, const QString &fileName)
- {
- QFile f(fileName);
- if (f.open(QIODevice::ReadOnly))
- writer.append(f.readAll());
- }
+void writeFile(QCborStreamWriter &writer, const QString &fileName)
+{
+ QFile f(fileName);
+ if (f.open(QIODevice::ReadOnly))
+ writer.append(f.readAll());
+}
//! [7]
-//! [8]
-using namespace Qt::StringLiterals;
-// ...
- writer.append("Hello, World"_L1);
-//! [8]
+void helloWorld(QCborStreamWriter &writer)
+{
+ //! [8]
+ using namespace Qt::StringLiterals;
+ // ...
+ writer.append("Hello, World"_L1);
+ //! [8]
+}
//! [9]
- void writeString(QCborStreamWriter &writer, const QString &str)
- {
- writer.append(str);
- }
+void writeString(QCborStreamWriter &writer, const QString &str)
+{
+ writer.append(str);
+}
//! [9]
//! [10]
- void writeRxPattern(QCborStreamWriter &writer, const QRegularExpression &rx)
- {
- writer.append(QCborTag(36));
- writer.append(rx.pattern());
- }
+void writeRxPattern(QCborStreamWriter &writer, const QRegularExpression &rx)
+{
+ writer.append(QCborTag(36));
+ writer.append(rx.pattern());
+}
//! [10]
//! [11]
- void writeCurrentTime(QCborStreamWriter &writer)
- {
- writer.append(QCborKnownTags::UnixTime_t);
- writer.append(time(nullptr));
- }
+void writeCurrentTime(QCborStreamWriter &writer)
+{
+ writer.append(QCborKnownTags::UnixTime_t);
+ writer.append(qint64(time(nullptr)));
+}
//! [11]
-//! [12]
- writer.append(QCborSimpleType::Null);
- writer.append(QCborSimpleType(32));
-//! [12]
+void ammend_example(QCborStreamWriter &writer)
+{
+ //! [12]
+ writer.append(QCborSimpleType::Null);
+ writer.append(QCborSimpleType(32));
+ //! [12]
+}
//! [13]
- void writeFloat(QCborStreamWriter &writer, float f)
- {
- qfloat16 f16 = f;
- if (qIsNaN(f) || f16 == f)
- writer.append(f16);
- else
- writer.append(f);
- }
+void writeFloat(QCborStreamWriter &writer, float f)
+{
+ qfloat16 f16 = f;
+ if (qIsNaN(f) || f16 == f)
+ writer.append(f16);
+ else
+ writer.append(f);
+}
//! [13]
//! [14]
- void writeFloat(QCborStreamWriter &writer, double d)
- {
- float f = d;
- if (qIsNaN(d) || d == f)
- writer.append(f);
- else
- writer.append(d);
- }
+void writeFloat(QCborStreamWriter &writer, double d)
+{
+ float f = d;
+ if (qIsNaN(d) || d == f)
+ writer.append(f);
+ else
+ writer.append(d);
+}
//! [14]
//! [15]
- void writeDouble(QCborStreamWriter &writer, double d)
- {
- float f;
- if (qIsNaN(d)) {
- writer.append(qfloat16(qQNaN()));
- } else if (qIsInf(d)) {
- writer.append(d < 0 ? -qInf() : qInf());
- } else if ((f = d) == d) {
- qfloat16 f16 = f;
- if (f16 == f)
- writer.append(f16);
- else
- writer.append(f);
- } else {
- writer.append(d);
- }
- }
+void writeDouble(QCborStreamWriter &writer, double d)
+{
+ float f;
+ if (qIsNaN(d)) {
+ writer.append(qfloat16(qQNaN()));
+ } else if (qIsInf(d)) {
+ writer.append(d < 0 ? -qInf() : qInf());
+ } else if ((f = d) == d) {
+ qfloat16 f16 = f;
+ if (f16 == f)
+ writer.append(f16);
+ else
+ writer.append(f);
+ } else {
+ writer.append(d);
+ }
+}
//! [15]
-//! [16]
- writer.append(b ? QCborSimpleType::True : QCborSimpleType::False);
-//! [16]
+void snippets_16_19(QCborStreamWriter &writer, bool b)
+{
+ //! [16]
+ writer.append(b ? QCborSimpleType::True : QCborSimpleType::False);
+ //! [16]
-//! [17]
- writer.append(QCborSimpleType::Null);
-//! [17]
+ //! [17]
+ writer.append(QCborSimpleType::Null);
+ //! [17]
-//! [18]
- writer.append(QCborSimpleType::Null);
-//! [18]
+ //! [18]
+ writer.append(QCborSimpleType::Null);
+ //! [18]
-//! [19]
- writer.append(QCborSimpleType::Undefined);
-//! [19]
+ //! [19]
+ writer.append(QCborSimpleType::Undefined);
+ //! [19]
+}
//! [20]
- void appendList(QCborStreamWriter &writer, const QList<QString> &values)
- {
- writer.startArray();
- for (const QString &s : values)
- writer.append(s);
- writer.endArray();
- }
+void appendList(QCborStreamWriter &writer, const QList<QString> &values)
+{
+ writer.startArray();
+ for (const QString &s : values)
+ writer.append(s);
+ writer.endArray();
+}
//! [20]
-//! [21]
- void appendList(QCborStreamWriter &writer, const QStringList &list)
- {
- writer.startArray(list.size());
- for (const QString &s : list)
- writer.append(s);
- writer.endArray();
- }
-//! [21]
-
-//! [22]
- void appendMap(QCborStreamWriter &writer, const QList<std::pair<int, QString>> &values)
- {
- writer.startMap();
- for (const auto pair : values) {
- writer.append(pair.first)
- writer.append(pair.second);
- }
- writer.endMap();
- }
-//! [22]
+namespace repetitions
+{
+ //! [21]
+ void appendList(QCborStreamWriter &writer, const QStringList &list)
+ {
+ writer.startArray(list.size());
+ for (const QString &s : list)
+ writer.append(s);
+ writer.endArray();
+ }
+ //! [21]
+
+ //! [22]
+ void appendMap(QCborStreamWriter &writer, const QList<std::pair<int, QString>> &values)
+ {
+ writer.startMap();
+ for (const auto pair : values) {
+ writer.append(pair.first);
+ writer.append(pair.second);
+ }
+ writer.endMap();
+ }
+ //! [22]
+}
//! [23]
- void appendMap(QCborStreamWriter &writer, const QMap<int, QString> &map)
- {
- writer.startMap(map.size());
- for (auto it = map.cbegin(), end = map.cend(); it != end; ++it) {
- writer.append(it.key());
- writer.append(it.value());
- }
- writer.endMap();
- }
+void appendMap(QCborStreamWriter &writer, const QMap<int, QString> &map)
+{
+ writer.startMap(map.size());
+ for (auto it = map.cbegin(), end = map.cend(); it != end; ++it) {
+ writer.append(it.key());
+ writer.append(it.value());
+ }
+ writer.endMap();
+}
//! [23]
+void handleFixedWidth(QCborStreamReader &reader);
+
+void handleString(QCborStreamReader &reader);
+
//! [24]
- void handleStream(QCborStreamReader &reader)
- {
- switch (reader.type())
- case QCborStreamReader::UnsignedInteger:
- case QCborStreamReader::NegativeInteger:
- case QCborStreamReader::SimpleType:
- case QCborStreamReader::Float16:
- case QCborStreamReader::Float:
- case QCborStreamReader::Double:
- handleFixedWidth(reader);
- reader.next();
- break;
- case QCborStreamReader::ByteArray:
- case QCborStreamReader::String:
- handleString(reader);
- break;
- case QCborStreamReader::Array:
- case QCborStreamReader::Map:
- reader.enterContainer();
- while (reader.lastError() == QCborError::NoError)
- handleStream(reader);
- if (reader.lastError() == QCborError::NoError)
- reader.leaveContainer();
- }
- }
+void handleStream(QCborStreamReader &reader)
+{
+ switch (reader.type())
+ {
+ case QCborStreamReader::UnsignedInteger:
+ case QCborStreamReader::NegativeInteger:
+ case QCborStreamReader::SimpleType:
+ case QCborStreamReader::Float16:
+ case QCborStreamReader::Float:
+ case QCborStreamReader::Double:
+ handleFixedWidth(reader);
+ reader.next();
+ break;
+ case QCborStreamReader::ByteArray:
+ case QCborStreamReader::String:
+ handleString(reader);
+ break;
+ case QCborStreamReader::Array:
+ case QCborStreamReader::Map:
+ reader.enterContainer();
+ while (reader.lastError() == QCborError::NoError)
+ handleStream(reader);
+ if (reader.lastError() == QCborError::NoError)
+ reader.leaveContainer();
+ }
+
+}
//! [24]
+QString readOneElement(QCborStreamReader &reader);
+
//! [25]
- QVariantList populateFromCbor(QCborStreamReader &reader)
- {
- QVariantList list;
- if (reader.isLengthKnown())
- list.reserve(reader.length());
-
- reader.enterContainer();
- while (reader.lastError() == QCborError::NoError && reader.hasNext())
- list.append(readOneElement(reader));
- if (reader.lastError() == QCborError::NoError)
- reader.leaveContainer();
- }
+QVariantList populateFromCbor(QCborStreamReader &reader)
+{
+ QVariantList list;
+ if (reader.isLengthKnown())
+ list.reserve(reader.length());
+
+ reader.enterContainer();
+ while (reader.lastError() == QCborError::NoError && reader.hasNext())
+ list.append(readOneElement(reader));
+ if (reader.lastError() == QCborError::NoError)
+ reader.leaveContainer();
+
+ return list;
+}
//! [25]
-//! [26]
- QVariantMap populateFromCbor(QCborStreamReader &reader)
- {
- QVariantMap map;
- if (reader.isLengthKnown())
- map.reserve(reader.length());
-
- reader.enterContainer();
- while (reader.lastError() == QCborError::NoError && reader.hasNext()) {
- QString key = readElementAsString(reader);
- map.insert(key, readOneElement(reader));
- }
- if (reader.lastError() == QCborError::NoError)
- reader.leaveContainer();
- }
-//! [26]
+namespace secondDefinition
+{
+ QString readElementAsString(QCborStreamReader &reader);
+ QVariantMap setMapLength(QVariantMap &map, qsizetype length);
+
+ //! [26]
+ QVariantMap populateFromCbor(QCborStreamReader &reader)
+ {
+ QVariantMap map;
+ if (reader.isLengthKnown())
+ map = setMapLength(map, reader.length());
+
+ reader.enterContainer();
+ while (reader.lastError() == QCborError::NoError && reader.hasNext()) {
+ QString key = readElementAsString(reader);
+ map.insert(key, readOneElement(reader));
+ }
+ if (reader.lastError() == QCborError::NoError)
+ reader.leaveContainer();
+
+ return map;
+ }
+ //! [26]
+}
//! [27]
- QString decodeString(QCborStreamReader &reader)
- {
- QString result;
- auto r = reader.readString();
- while (r.status == QCborStreamReader::Ok) {
- result += r.data;
- r = reader.readString();
- }
-
- if (r.status == QCborStreamReader::Error) {
- // handle error condition
- result.clear();
- }
- return result;
- }
+QString decodeString(QCborStreamReader &reader)
+{
+ QString result;
+ auto r = reader.readString();
+ while (r.status == QCborStreamReader::Ok) {
+ result += r.data;
+ r = reader.readString();
+ }
+
+ if (r.status == QCborStreamReader::Error) {
+ // handle error condition
+ result.clear();
+ }
+ return result;
+}
//! [27]
//! [28]
- QBytearray decodeBytearray(QCborStreamReader &reader)
- {
- QBytearray result;
- auto r = reader.readBytearray();
- while (r.status == QCborStreamReader::Ok) {
- result += r.data;
- r = reader.readByteArray();
- }
-
- if (r.status == QCborStreamReader::Error) {
- // handle error condition
- result.clear();
- }
- return result;
- }
+QByteArray decodeBytearray(QCborStreamReader &reader)
+{
+ QByteArray result;
+ auto r = reader.readByteArray();
+ while (r.status == QCborStreamReader::Ok) {
+ result += r.data;
+ r = reader.readByteArray();
+ }
+
+ if (r.status == QCborStreamReader::Error) {
+ // handle error condition
+ result.clear();
+ }
+ return result;
+}
//! [28]
-//! [29]
- QCborStreamReader<qsizetype> result;
+void do_while_example(QCborStreamReader &reader, QByteArray &buffer)
+{
+ //! [29]
+ QCborStreamReader::StringResult<qsizetype> result;
do {
qsizetype size = reader.currentStringChunkSize();
qsizetype oldsize = buffer.size();
buffer.resize(oldsize + size);
result = reader.readStringChunk(buffer.data() + oldsize, size);
- } while (result.status() == QCborStreamReader::Ok);
-//! [29]
+ } while (result.status == QCborStreamReader::Ok);
+ //! [29]
+}
diff --git a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborvalue.cpp b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborvalue.cpp
index 3abee048ab3..3b1914f1b4e 100644
--- a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborvalue.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborvalue.cpp
@@ -1,33 +1,41 @@
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//! [0]
+#include <QCborValue>
+#include <QCborStreamReader>
+#include <QUuid>
+#include <QCborMap>
+
+void wrapInFunction(QUuid uuid, QCborStreamReader &reader, const QString &key)
+{
+ //! [0]
QCborValue(uuid) == QCborValue(QCborKnownTags::Uuid, uuid.toRfc4122());
-//! [0]
+ //! [0]
-//! [1]
+ //! [1]
QCborValue value(QCborSimpleType(12));
-//! [1]
+ //! [1]
-//! [2]
+ //! [2]
value.isSimpleType(QCborSimpleType(12));
-//! [2]
+ //! [2]
-//! [3]
+ //! [3]
QCborValue(QUrl("https://example.com")) == QCborValue(QCborKnownTags::Url, "https://example.com");
-//! [3]
+ //! [3]
-//! [4]
+ //! [4]
value.toMap().value(key);
-//! [4]
+ //! [4]
-//! [5]
+ //! [5]
value.toMap().value(key);
-//! [5]
+ //! [5]
-//! [6]
+ //! [6]
if (reader.isTag() && reader.toTag() == QCborKnownTags::Signature)
reader.next();
QCborValue contents = QCborValue::fromCbor(reader);
-//! [6]
+ //! [6]
+}
diff --git a/src/corelib/doc/snippets/code/src_corelib_serialization_qdatastream.cpp b/src/corelib/doc/snippets/code/src_corelib_serialization_qdatastream.cpp
index dfdebe6a76b..c88d37d6427 100644
--- a/src/corelib/doc/snippets/code/src_corelib_serialization_qdatastream.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_serialization_qdatastream.cpp
@@ -1,6 +1,12 @@
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+#include <QDataStream>
+#include <QImage>
+
+class QXxx
+{ };
+
//! [0]
QDataStream &operator<<(QDataStream &, const QXxx &);
QDataStream &operator>>(QDataStream &, QXxx &);
diff --git a/src/corelib/doc/snippets/code/src_corelib_serialization_qjsonobject.cpp b/src/corelib/doc/snippets/code/src_corelib_serialization_qjsonobject.cpp
index a6a1cba7322..a43681c8e4c 100644
--- a/src/corelib/doc/snippets/code/src_corelib_serialization_qjsonobject.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_serialization_qjsonobject.cpp
@@ -1,17 +1,22 @@
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-//! [1]
-QJsonObject obj{
- { "something", "is" },
- { "in", "this" },
- { "object", 42 },
-};
+#include <QJsonObject>
-for (auto [key, value] : obj.asKeyValueRange()) {
- qDebug() << key << "->" << value;
- if (key == "object")
- value = "!"; // modify the object at this key
+void example()
+{
+ //! [1]
+ QJsonObject obj{
+ { "something", "is" },
+ { "in", "this" },
+ { "object", 42 },
+ };
+
+ for (auto [key, value] : obj.asKeyValueRange()) {
+ qDebug() << key << "->" << value;
+ if (key == "object")
+ value = "!"; // modify the object at this key
+ }
+ qDebug() << obj["object"]; // QJsonValue(string, "!")
+ //! [1]
}
-qDebug() << obj["object"]; // QJsonValue(string, "!")
-//! [1]