dmlite::PluginManager Class Reference

CatalogInterface can only be instantiated through this class. More...

#include <dmlite.h>

List of all members.

Public Member Functions

 PluginManager () throw ()
 Constructor.
 ~PluginManager ()
 Destructor.
void loadPlugin (const std::string &lib, const std::string &id)
void configure (const std::string &key, const std::string &value)
void loadConfiguration (const std::string &file)
std::string getConfiguration (const std::string &key)
void registerAuthnFactory (AuthnFactory *factory)
void registerINodeFactory (INodeFactory *factory)
void registerCatalogFactory (CatalogFactory *factory)
void registerPoolManagerFactory (PoolManagerFactory *factory)
void registerIODriverFactory (IODriverFactory *factory)
void registerPoolDriverFactory (PoolDriverFactory *factory)
void registerConfigureFactory (BaseFactory *factory)
AuthnFactory * getAuthnFactory ()
 Get the AuthnFactory implementation on top of the plugin stack.
INodeFactory * getINodeFactory ()
CatalogFactory * getCatalogFactory ()
 Get the CatalogFactory implementation on top of the plugin stack.
PoolManagerFactory * getPoolManagerFactory ()
 Get the PoolFactory implementation on top of the plugin stack.
PoolDriverFactory * getPoolDriverFactory (const std::string &pooltype)
 Get the appropiate pool driver factory for the pool.
IODriverFactory * getIODriverFactory ()
 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< IODriverFactory * > 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.

Detailed Description

CatalogInterface can only be instantiated through this class.


Constructor & Destructor Documentation

dmlite::PluginManager::PluginManager (  )  throw ()

Constructor.

dmlite::PluginManager::~PluginManager (  ) 

Destructor.

dmlite::PluginManager::PluginManager ( const PluginManager &   )  [private]

Can not be copied.


Member Function Documentation

void dmlite::PluginManager::configure ( const std::string &  key,
const std::string &  value 
)

Set a configuration parameter. It will be passed to the loaded plugins.

Parameters:
key The configuration parameter.
value The value for the configuration parameter.
AuthnFactory* dmlite::PluginManager::getAuthnFactory (  ) 

Get the AuthnFactory implementation on top of the plugin stack.

CatalogFactory* dmlite::PluginManager::getCatalogFactory (  ) 

Get the CatalogFactory implementation on top of the plugin stack.

std::string dmlite::PluginManager::getConfiguration ( const std::string &  key  ) 

Return an entry from the loaded configuration.

Parameters:
key The configuration parameter.
INodeFactory* dmlite::PluginManager::getINodeFactory (  ) 
IODriverFactory* dmlite::PluginManager::getIODriverFactory (  ) 

Get the IOFactory implementation on top of the plugin stack.

PoolDriverFactory* dmlite::PluginManager::getPoolDriverFactory ( const std::string &  pooltype  ) 

Get the appropiate pool driver factory for the pool.

PoolManagerFactory* dmlite::PluginManager::getPoolManagerFactory (  ) 

Get the PoolFactory implementation on top of the plugin stack.

void dmlite::PluginManager::loadConfiguration ( const std::string &  file  ) 

Load a configuration file, with plugins and parameters.

Parameters:
file The configuration file.
void dmlite::PluginManager::loadPlugin ( const std::string &  lib,
const std::string &  id 
)

Load a plugin. Previously instantiated interfaces won't be affected.

Parameters:
lib The .so file. Usually, (path)/plugin_name.so.
id The plugin ID. Usually, plugin_name.
void dmlite::PluginManager::registerAuthnFactory ( AuthnFactory *  factory  ) 

Register a Authn factory. To be used by concrete implementations

Parameters:
factory The UserDbGroup concrete factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerCatalogFactory ( CatalogFactory *  factory  ) 

Register a catalog factory. To be used by concrete implementations (i.e. Plugins)

Parameters:
factory The catalog concrete factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerConfigureFactory ( BaseFactory *  factory  ) 

Register a bare BaseFactory. Only the configure method will be called.

Parameters:
factory The BaseFactory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerINodeFactory ( INodeFactory *  factory  ) 

Register a INode factory. To be used by concrete implementations (i.e. Plugins)

Parameters:
factory The INode concrete factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerIODriverFactory ( IODriverFactory *  factory  ) 

Register a IODriver factory.

Parameters:
factory The IO concrete factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerPoolDriverFactory ( PoolDriverFactory *  factory  ) 

Register a PoolDriver factory.

Parameters:
factory The PoolDriver factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.
void dmlite::PluginManager::registerPoolManagerFactory ( PoolManagerFactory *  factory  ) 

Register a pool factory.

Parameters:
factory The pool concrete factory.
Note:
The same object can be passed to other register functions. DMLite will take care of freeing it only once.

Member Data Documentation

Internal list of loaded plug-ins.

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.


The documentation for this class was generated from the following file:

Generated on 5 Nov 2020 for dmlite by  doxygen 1.6.1