Expose the plugins meta data in the plugin loader

add a metaData() method to QPluginLoader so that
applications can query the plugins meta data without
having to load the plugin.

Change-Id: Ic3ebb35fd3c403926326e8dd1de4176b0c48dbef
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Lars Knoll 2012-05-27 11:38:36 +02:00 committed by Qt by Nokia
parent 87e50e079e
commit b7be632d5e
2 changed files with 19 additions and 0 deletions

View File

@ -172,6 +172,23 @@ QObject *QPluginLoader::instance()
return d->inst.data();
}
/*!
Returns the meta data for this plugin. The meta data is data specified
in a json format using the Q_PLUGIN_METADATA() macro when compiling
the plugin.
The meta data can be queried in a fast and inexpensive way without
actually loading the plugin. This makes it possible to e.g. store
capabilities of the plugin in there, and make the decision whether to
load the plugin dependent on this meta data.
*/
QJsonObject QPluginLoader::metaData() const
{
if (!d)
return QJsonObject();
return d->metaData;
}
/*!
Loads the plugin and returns true if the plugin was loaded
successfully; otherwise returns false. Since instance() always

View File

@ -56,6 +56,7 @@ QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QLibraryPrivate;
class QJsonObject;
class Q_CORE_EXPORT QPluginLoader : public QObject
{
@ -68,6 +69,7 @@ public:
~QPluginLoader();
QObject *instance();
QJsonObject metaData() const;
static QObjectList staticInstances();