diff options
Diffstat (limited to 'src/corelib/plugin/qfactoryloader_p.h')
-rw-r--r-- | src/corelib/plugin/qfactoryloader_p.h | 38 |
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 |