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

Sebastian Kügler sebas at kde.org
Thu Sep 12 21:15:22 UTC 2013


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

(Updated Sept. 12, 2013, 9:15 p.m.)


Review request for KDE Frameworks and David Faure.


Changes
-------

All comments addressed, including tweaking the API towards more subdirectory-based usage. The only argument to the query methods that's required is now subdirectory, the rest is optional.


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 (updated)
-----

  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/20130912/05c2446c/attachment.html>


More information about the Kde-frameworks-devel mailing list