BALL
1.4.79
|
#include <BALL/PLUGIN/pluginManager.h>
Public Member Functions | |
virtual | ~PluginManager () |
bool | addPluginDirectory (const QString &dir) |
bool | removePluginDirectory (const QString &dir) |
std::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) |
void | registerHandler (boost::shared_ptr< PluginHandler > h) |
bool | unregisterHandler (PluginHandler *h) |
virtual bool | getPluginDirectories (String &value) const |
virtual bool | setPluginDirectories (const String &) |
virtual QString | getAutoActivatePlugins () const |
virtual bool | setAutoActivatePlugins (const QString &) |
void | autoActivatePlugin (const QString &str) |
void | doNotAutoActivatePlugin (const QString &str) |
Static Public Member Functions | |
static PluginManager & | instance () |
Protected Types | |
typedef std::map< QString, vector< BALLPlugin * > > | PluginDirMap |
Protected Member Functions | |
PluginManager () | |
PluginManager (const PluginManager &) | |
PluginManager & | operator= (const PluginManager &) |
bool | unloadDirectoryPlugins_ (PluginDirMap::iterator it) |
Protected Attributes | |
PluginDirMap | loaded_plugin_dirs_ |
QHash< QString, QPluginLoader * > | loaders_ |
std::list< PluginHandler * > | handlers_ |
std::list< boost::shared_ptr < PluginHandler > > | shared_handlers_ |
QStringList | autoactivate_plugins_ |
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 38 of file pluginManager.h.
|
protected |
Definition at line 213 of file pluginManager.h.
|
virtual |
|
protected |
|
protected |
bool BALL::PluginManager::addPluginDirectory | ( | const QString & | dir | ) |
Tries to load all plugins (files named like: pluginMyPlugin.$LIBRARY_SUFFIX) located in the specified directoy dir.
dir | the directory to search for plugins. |
void BALL::PluginManager::autoActivatePlugin | ( | const QString & | str | ) |
void BALL::PluginManager::doNotAutoActivatePlugin | ( | const QString & | str | ) |
|
virtual |
int BALL::PluginManager::getPluginCount | ( | ) | const |
Returns the number of loaded plugins.
std::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 |
|
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.
void BALL::PluginManager::registerHandler | ( | boost::shared_ptr< PluginHandler > | h | ) |
Register a new PluginHandler. This handler will then be available for starting new plugins.
This method is a convenience funtion that takes a boost shared_ptr which is stored in the PluginManager and hence destroyed once the PluginManager is unloaded.
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. |
|
virtual |
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.
|
protected |
bool BALL::PluginManager::unloadPlugin | ( | const QString & | plugin | ) |
Unloads the plugin specified by plugin_name.
plugin_name | The name of the plugin to unload |
bool BALL::PluginManager::unregisterHandler | ( | PluginHandler * | h | ) |
Unregister a PluginHandler.
If the handler was not registered this function does nothing. Otherwise all plugins for which the handler is responsible will be unloaded and the handler will no longer be available.
Every registered PluginHandler should call this function before it is destroyed. Otherwise segmentation faults will happen!
h | the handler that should be unregistered |
|
protected |
Definition at line 226 of file pluginManager.h.
|
staticprotected |
Definition at line 211 of file pluginManager.h.
|
mutableprotected |
Definition at line 233 of file pluginManager.h.
|
protected |
Definition at line 223 of file pluginManager.h.
|
protected |
Definition at line 220 of file pluginManager.h.
|
mutableprotected |
Definition at line 235 of file pluginManager.h.
|
protected |
Definition at line 222 of file pluginManager.h.
|
staticprotected |
Definition at line 228 of file pluginManager.h.
|
staticprotected |
Definition at line 231 of file pluginManager.h.
|
protected |
Definition at line 224 of file pluginManager.h.