QFactoryLoader: move QPluginParsedMetaData to qplugin_p.h
Which is a more central header, with no other dependencies. This is just a declarative structure with no .cpp requirements, so it fits there. This way, qlibrary_p.h won't depend on qfactory_p.h. QLibrary, QPluginLoader and QFactoryLoader are inextricably linked (the plugin-parsing code is in qfactoryloader.cpp because QFactoryLoader needs it to parse metadata too). This will later allow me to make qfactory_p.h depend on qlibrary_p.h. Change-Id: I0544826807f97d366142fffde0ebdc802273ffc2 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
parent
e6a6757c14
commit
37485e9661
@ -31,32 +31,6 @@ QT_BEGIN_NAMESPACE
|
||||
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)); }
|
||||
|
||||
QJsonObject toJson() const; // only for QLibrary & QPluginLoader
|
||||
|
||||
// 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 data[int(k)]; }
|
||||
};
|
||||
|
||||
class QFactoryLoaderPrivate;
|
||||
class Q_CORE_EXPORT QFactoryLoader : public QObject
|
||||
{
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
#include "QtCore/qlibrary.h"
|
||||
|
||||
#include "QtCore/private/qfactoryloader_p.h"
|
||||
#include "QtCore/private/qplugin_p.h"
|
||||
#include "QtCore/qloggingcategory.h"
|
||||
#include "QtCore/qmutex.h"
|
||||
#include "QtCore/qplugin.h"
|
||||
|
@ -17,6 +17,10 @@
|
||||
|
||||
#include <private/qglobal_p.h>
|
||||
|
||||
#include "QtCore/qplugin.h"
|
||||
#include "QtCore/qcborvalue.h"
|
||||
#include "QtCore/qcbormap.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
enum class QtPluginMetaDataKeys {
|
||||
@ -93,6 +97,33 @@ static_assert(decodeVersion1ArchRequirements(0x84) == DecodedArchRequirements{ 4
|
||||
#endif
|
||||
} // unnamed namespace
|
||||
|
||||
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)); }
|
||||
|
||||
QJsonObject toJson() const; // only for QLibrary & QPluginLoader
|
||||
|
||||
// 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 data[int(k)]; }
|
||||
};
|
||||
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // QPLUGIN_P_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user