dmlite
0.6
|
CatalogInterface can only be instantiated through this class. More...
#include <dmlite.h>
Public Member Functions | |
PluginManager () throw () | |
Constructor. | |
~PluginManager () | |
Destructor. | |
void | loadPlugin (const std::string &lib, const std::string &id) throw (DmException) |
void | configure (const std::string &key, const std::string &value) throw (DmException) |
void | loadConfiguration (const std::string &file) throw (DmException) |
std::string | getConfiguration (const std::string &key) throw (DmException) |
void | registerAuthnFactory (AuthnFactory *factory) throw (DmException) |
void | registerINodeFactory (INodeFactory *factory) throw (DmException) |
void | registerCatalogFactory (CatalogFactory *factory) throw (DmException) |
void | registerPoolManagerFactory (PoolManagerFactory *factory) throw (DmException) |
void | registerIOFactory (IOFactory *factory) throw (DmException) |
void | registerPoolDriverFactory (PoolDriverFactory *factory) throw (DmException) |
void | registerConfigureFactory (BaseFactory *factory) throw (DmException) |
AuthnFactory * | getAuthnFactory () throw (DmException) |
Get the AuthnFactory implementation on top of the plugin stack. | |
INodeFactory * | getINodeFactory () throw (DmException) |
CatalogFactory * | getCatalogFactory () throw (DmException) |
Get the CatalogFactory implementation on top of the plugin stack. | |
PoolManagerFactory * | getPoolManagerFactory () throw (DmException) |
Get the PoolFactory implementation on top of the plugin stack. | |
PoolDriverFactory * | getPoolDriverFactory (const std::string &pooltype) throw (DmException) |
Get the appropiate pool driver factory for the pool. | |
IOFactory * | getIOFactory () throw (DmException) |
Get the IOFactory implementation on top of the plugin stack. | |
Private Member Functions | |
PluginManager (const PluginManager &) | |
Can not be copied. | |
Private Attributes | |
std::map< std::string, std::string > | confValues_ |
Configuration key/value. | |
std::list< AuthnFactory * > | authn_plugins_ |
Internal list of loaded plug-ins. | |
std::list< INodeFactory * > | inode_plugins_ |
std::list< CatalogFactory * > | catalog_plugins_ |
std::list< PoolManagerFactory * > | pool_plugins_ |
std::list< IOFactory * > | io_plugins_ |
std::list< PoolDriverFactory * > | pool_driver_plugins_ |
std::list< BaseFactory * > | configure_factory_ |
std::list< void * > | dlHandles_ |
Keep pointers returned by dlopen at hand to free on destruction. |
CatalogInterface can only be instantiated through this class.
dmlite::PluginManager::PluginManager | ( | ) | throw () |
Constructor.
Destructor.
dmlite::PluginManager::PluginManager | ( | const PluginManager & | ) | [private] |
Can not be copied.
void dmlite::PluginManager::configure | ( | const std::string & | key, |
const std::string & | value | ||
) | throw (DmException) |
Set a configuration parameter. It will be passed to the loaded plugins.
key | The configuration parameter. |
value | The value for the configuration parameter. |
Get the AuthnFactory implementation on top of the plugin stack.
Get the CatalogFactory implementation on top of the plugin stack.
std::string dmlite::PluginManager::getConfiguration | ( | const std::string & | key | ) | throw (DmException) |
Return an entry from the loaded configuration.
key | The configuration parameter. |
IOFactory* dmlite::PluginManager::getIOFactory | ( | ) | throw (DmException) |
Get the IOFactory implementation on top of the plugin stack.
PoolDriverFactory* dmlite::PluginManager::getPoolDriverFactory | ( | const std::string & | pooltype | ) | throw (DmException) |
Get the appropiate pool driver factory for the pool.
Get the PoolFactory implementation on top of the plugin stack.
void dmlite::PluginManager::loadConfiguration | ( | const std::string & | file | ) | throw (DmException) |
Load a configuration file, with plugins and parameters.
file | The configuration file. |
void dmlite::PluginManager::loadPlugin | ( | const std::string & | lib, |
const std::string & | id | ||
) | throw (DmException) |
Load a plugin. Previously instantiated interfaces won't be affected.
lib | The .so file. Usually, (path)/plugin_name.so. |
id | The plugin ID. Usually, plugin_name. |
void dmlite::PluginManager::registerAuthnFactory | ( | AuthnFactory * | factory | ) | throw (DmException) |
Register a Authn factory. To be used by concrete implementations
factory | The UserDbGroup concrete factory. |
void dmlite::PluginManager::registerCatalogFactory | ( | CatalogFactory * | factory | ) | throw (DmException) |
Register a catalog factory. To be used by concrete implementations (i.e. Plugins)
factory | The catalog concrete factory. |
void dmlite::PluginManager::registerConfigureFactory | ( | BaseFactory * | factory | ) | throw (DmException) |
Register a bare BaseFactory. Only the configure method will be called.
factory | The BaseFactory. |
void dmlite::PluginManager::registerINodeFactory | ( | INodeFactory * | factory | ) | throw (DmException) |
void dmlite::PluginManager::registerIOFactory | ( | IOFactory * | factory | ) | throw (DmException) |
Register a IO factory.
factory | The IO concrete factory. |
void dmlite::PluginManager::registerPoolDriverFactory | ( | PoolDriverFactory * | factory | ) | throw (DmException) |
Register a PoolDriver factory.
factory | The PoolDriver factory. |
void dmlite::PluginManager::registerPoolManagerFactory | ( | PoolManagerFactory * | factory | ) | throw (DmException) |
Register a pool factory.
factory | The pool concrete factory. |
std::list<AuthnFactory*> dmlite::PluginManager::authn_plugins_ [private] |
Internal list of loaded plug-ins.
std::list<CatalogFactory*> dmlite::PluginManager::catalog_plugins_ [private] |
std::list<BaseFactory*> dmlite::PluginManager::configure_factory_ [private] |
std::map<std::string, std::string> dmlite::PluginManager::confValues_ [private] |
Configuration key/value.
std::list<void*> dmlite::PluginManager::dlHandles_ [private] |
Keep pointers returned by dlopen at hand to free on destruction.
std::list<INodeFactory*> dmlite::PluginManager::inode_plugins_ [private] |
std::list<IOFactory*> dmlite::PluginManager::io_plugins_ [private] |
std::list<PoolDriverFactory*> dmlite::PluginManager::pool_driver_plugins_ [private] |
std::list<PoolManagerFactory*> dmlite::PluginManager::pool_plugins_ [private] |