KPIM::PluginLoader< T, T_config > Class Template Reference
A generic plugin loader for when KPart::Plugin is overkill. More...
#include <pluginloader.h>
Public Member Functions | |
virtual void | scan () |
virtual T * | createForName (const QString &type) const |
Static Public Member Functions | |
PluginLoader< T, T_config > * | instance () |
Detailed Description
template<typename T, typename T_config>
class KPIM::PluginLoader< T, T_config >
A generic plugin loader for when KPart::Plugin is overkill.
- Author:
- Marc Mutz <mutz@kde.org> based on KABC's FormatFactory
Usage
A PluginLoader takes two template arguments, T
and T_config
:
- T
- The type of object to return
- T_config::mainfunc
- The suffix of the factory function to call in the library to obtain a new object of type
T
. The string passed toKLibrary::symbol()
islibName_mainfunc
. - T_config::path
- The search pattern for
.desktop
files containing the plugin descriptions. This is the string passed as thefilter
argument toKStandardDirs::findAllResources
.
The last two parameters being strings, they are passed via an encapsulating class, of which mainfunc
and path</path> are public static members:
struct MyObjectPluginLoaderConfig {
static const char * const mainfunc;
static const char * const path;
};
const char * const MyObjectPluginLoaderConfig::mainfunc = "myapp_create_myobject";
const char * const MyObjectPluginLoaderConfig::path = "myapp/plugins/ *.desktop";
You would then use a
typedef
to create a less unwieldy name for your plugin loader:
typedef KPIM::PluginLoader< MyObject, MyObjectPluginLoaderConfig > MyObjectPluginLoader;
All of this is what the
KPIM_DEFINE_PLUGIN_LOADER(pluginloadername,type,mainfunc,path)
macro achieves.
Definition at line 79 of file pluginloader.h.
Member Function Documentation
|
Returns the single instance of this loader. Definition at line 90 of file pluginloader.h. |
|
Rescans the plugin directory to find any newly installed plugins. Definition at line 101 of file pluginloader.h. |
|
Returns a pointer to a plugin object (of type You can extend this method for when you want to handle builtin types Definition at line 108 of file pluginloader.h. |
The documentation for this class was generated from the following file: