summaryrefslogtreecommitdiffstats
path: root/src/corelib/plugin/qfactoryloader_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/plugin/qfactoryloader_p.h')
-rw-r--r--src/corelib/plugin/qfactoryloader_p.h38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/corelib/plugin/qfactoryloader_p.h b/src/corelib/plugin/qfactoryloader_p.h
index 0ad62cc525..b7536d0349 100644
--- a/src/corelib/plugin/qfactoryloader_p.h
+++ b/src/corelib/plugin/qfactoryloader_p.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2021 Intel Corporation.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -54,19 +55,44 @@
#include "QtCore/qglobal.h"
#ifndef QT_NO_QOBJECT
+#include "QtCore/private/qplugin_p.h"
+#include "QtCore/qcbormap.h"
+#include "QtCore/qcborvalue.h"
#include "QtCore/qmap.h"
#include "QtCore/qobject.h"
-
-#if QT_CONFIG(library)
-# include "qlibrary_p.h"
-#endif
+#include "QtCore/qplugin.h"
QT_BEGIN_NAMESPACE
class QJsonDocument;
class QJsonObject;
+class QLibraryPrivate;
+
+class QPluginParsedMetaData
+{
+ QCborValue data;
+ bool setError(const QString &errorString) Q_DECL_COLD_FUNCTION
+ {
+ data = errorString;
+ return false;
+ }
+public:
+ QPluginParsedMetaData() = default;
+ QPluginParsedMetaData(QByteArrayView input) { parse(input); }
+
+ bool isError() const { return !data.isMap(); }
+ QString errorString() const { return data.toString(); }
+
+ bool parse(QByteArrayView input);
+ bool parse(QPluginMetaData metaData)
+ { return parse(QByteArrayView(reinterpret_cast<const char *>(metaData.data), metaData.size)); }
-QJsonDocument qJsonFromRawLibraryMetaData(const char *raw, qsizetype size, QString *errMsg);
+ QJsonObject toJson() const;
+
+ // if data is not a map, toMap() returns empty, so shall these functions
+ QCborMap toCbor() const { return data.toMap(); }
+ QCborValue value(QtPluginMetaDataKeys k) const { return toCbor()[int(k)]; }
+};
class QFactoryLoaderPrivate;
class Q_CORE_EXPORT QFactoryLoader : public QObject