Review Request 112680: KPluginTrader: QPluginLoader/metadata-based querying of Plugins

Commit Hook null at kde.org
Tue Sep 17 15:49:12 UTC 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/112680/
-----------------------------------------------------------

(Updated Sept. 17, 2013, 3:49 p.m.)


Status
------

This change has been marked as submitted.


Review request for KDE Frameworks and David Faure.


Description
-------

A trader interface (similar to the CORBA Trader), which provides a way query specific subdirectories in the Qt plugin paths for plugins. KPluginTrader provides an easy way to load a plugin instance from a KPluginFactory, just querying for existing plugins.

KPluginTrader provides a way for an application to query directories in the Qt plugin paths, accessed through QCoreApplication::libraryPaths(). Plugins may match a specific set of requirements. This allows to find specific plugins at run-time without having to hard-code their names and/or paths. KPluginTrader does not search recursively, you are rather encouraged to install plugins into specific subdirectories to further speed searching.

KPluginTrader exclusively searches within the plugin binaries' metadata (via QPluginLoader::metaData()). It does not search these directories recursively and it does not use KServiceTypeTrader or KSyCoCa. Currently, no caching is done, this should/will be implemented separately on top of this patch.

The implementation is losely based on KServiceTypeTrader, meant for easy porting.

Code, along with other needed patches can be found in kdelibs[sebas/pluginlocator].


Diffs
-----

  staging/kservice/src/plugin/kplugintrader.h PRE-CREATION 
  staging/kservice/src/plugin/kplugintrader.cpp PRE-CREATION 

Diff: http://git.reviewboard.kde.org/r/112680/diff/


Testing
-------

- A whole bunch of newly written unit tests pass, to be submitted separately
- Ported Plasma::PluginLoader's dataengine handling, it works without apparent regressions


Thanks,

Sebastian Kügler

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20130917/3bc3ba5c/attachment.html>


More information about the Kde-frameworks-devel mailing list