BALL
1.4.2
|
#include <BALL/PLUGIN/pluginManager.h>
Public Member Functions | |
virtual | ~PluginManager () |
void | addPluginDirectory (const QString &dir, bool autoactivate=false) |
bool | removePluginDirectory (const QString &dir) |
vector< QString > | getPluginDirectories () const |
BALLPlugin * | loadPlugin (const QString &plugin_name) |
bool | unloadPlugin (const QString &plugin) |
QObject * | getPluginInstance (const QString &plugin) |
QObject * | getPluginInstance (int pos) |
bool | startPlugin (int plugin) |
bool | startPlugin (const QString &plugin) |
bool | startPlugin (BALLPlugin *plugin) |
bool | stopPlugin (int plugin) |
bool | stopPlugin (const QString &plugin) |
bool | stopPlugin (BALLPlugin *plugin) |
void | unloadAllPlugins () |
int | getPluginCount () const |
void | registerHandler (PluginHandler *h) |
virtual bool | getValue (String &) const |
Overload this in derived classes! More... | |
virtual bool | setValue (const String &) |
Overload this in derived classes! More... | |
Public Member Functions inherited from BALL::PreferencesObject | |
PreferencesObject () | |
virtual | ~PreferencesObject () |
Static Public Member Functions | |
static PluginManager & | instance () |
Protected Member Functions | |
PluginManager () | |
PluginManager (const PluginManager &) | |
PluginManager & | operator= (const PluginManager &) |
Protected Attributes | |
std::map< QString, vector < BALLPlugin * > > | loaded_plugin_dirs_ |
QHash< QString, QPluginLoader * > | loaders_ |
std::list< PluginHandler * > | handlers_ |
QReadWriteLock | handler_mutex_ |
QReadWriteLock | loader_mutex_ |
Static Protected Attributes | |
static const char * | BETWEEN_PLUGINDIR_SEPERATOR |
static boost::shared_ptr < PluginManager > | manager_ |
static QMutex | mutex_ |
A singleton that takes care of handling all plugins. It is responsible for loading, starting and stopping plugins. For the task of properly initializing the plugins it utilizes the PluginHandler helper classes, that need to be supplemented for each new plugin type.
Definition at line 33 of file pluginManager.h.
|
virtual |
|
protected |
|
protected |
void BALL::PluginManager::addPluginDirectory | ( | const QString & | dir, |
bool | autoactivate = false |
||
) |
Tries to load all plugins (files named like: pluginMyPlugin.$LIBRARY_SUFFIX) located in the specified directoy dir.
dir | the directory to search for plugins. |
int BALL::PluginManager::getPluginCount | ( | ) | const |
Returns the number of loaded plugins.
vector<QString> BALL::PluginManager::getPluginDirectories | ( | ) | const |
Return a list of directories currently searched for plugins.
QObject* BALL::PluginManager::getPluginInstance | ( | const QString & | plugin | ) |
Searches for the plugin and returns a pointer to it if it has been loaded.
plugin | The name of the plugin to search |
QObject* BALL::PluginManager::getPluginInstance | ( | int | pos | ) |
Searches for the plugin and returns a pointer to it if it has been loaded.
pos | The position of the plugin in the plugin list |
Overload this in derived classes!
Implements BALL::PreferencesObject.
|
static |
Use this method to obtain the PluginManager instance.
This method is thread safe.
BALLPlugin* BALL::PluginManager::loadPlugin | ( | const QString & | plugin_name | ) |
Loads the plugin specified by plugin_name.
plugin_name | The path to the plugin to load |
|
protected |
void BALL::PluginManager::registerHandler | ( | PluginHandler * | h | ) |
Register a new PluginHandler. This handler will then be available for starting new plugins.
bool BALL::PluginManager::removePluginDirectory | ( | const QString & | dir | ) |
Tries to unload all plugins (files named like: pluginMyPlugin.$LIBRARY_SUFFIX) located in the specified directoy dir.
dir | the directory to search for plugins to remove. |
Overload this in derived classes!
Implements BALL::PreferencesObject.
bool BALL::PluginManager::startPlugin | ( | int | plugin | ) |
bool BALL::PluginManager::startPlugin | ( | const QString & | plugin | ) |
bool BALL::PluginManager::startPlugin | ( | BALLPlugin * | plugin | ) |
Starts the specified plugin through a applicable PluginHandler
plugin | A pointer to the plugin to be started |
bool BALL::PluginManager::stopPlugin | ( | int | plugin | ) |
bool BALL::PluginManager::stopPlugin | ( | const QString & | plugin | ) |
bool BALL::PluginManager::stopPlugin | ( | BALLPlugin * | plugin | ) |
Stops the specified plugin by letting all PluginHandlers stop it.
plugin | A pointer to the plugin to be stopped |
void BALL::PluginManager::unloadAllPlugins | ( | ) |
Unload all registered plugins.
bool BALL::PluginManager::unloadPlugin | ( | const QString & | plugin | ) |
Unloads the plugin specified by plugin_name.
plugin_name | The name of the plugin to unload |
|
staticprotected |
Definition at line 168 of file pluginManager.h.
|
mutableprotected |
Definition at line 184 of file pluginManager.h.
|
protected |
Definition at line 177 of file pluginManager.h.
|
protected |
Definition at line 174 of file pluginManager.h.
|
mutableprotected |
Definition at line 186 of file pluginManager.h.
|
protected |
Definition at line 176 of file pluginManager.h.
|
staticprotected |
Definition at line 179 of file pluginManager.h.
|
staticprotected |
Definition at line 182 of file pluginManager.h.