#include <PluginFactoryBase.h>
Classes | |
struct | PluginMakerInfo |
Public Types | |
typedef tbb::concurrent_unordered_map< std::string, PMakers > | Plugins |
typedef tbb::concurrent_vector< PluginMakerInfo > | PMakers |
Public Member Functions | |
virtual std::vector< PluginInfo > | available () const |
return info about all plugins which are already available in the program More... | |
virtual const std::string & | category () const =0 |
returns the name of the category to which this plugin factory belongs More... | |
PluginFactoryBase () | |
virtual | ~PluginFactoryBase () |
Public Attributes | |
edm::signalslot::Signal< void(const std::string &, const PluginInfo &)> | newPluginAdded_ |
signal containing plugin category, and plugin info for newly added plugin More... | |
Protected Member Functions | |
void | fillAvailable (std::vector< PluginInfo > &iReturn) const |
void | fillInfo (const PMakers &makers, PluginInfo &iInfo, std::vector< PluginInfo > &iReturn) const |
void * | findPMaker (const std::string &iName) const |
void | finishedConstruction () |
void | newPlugin (const std::string &iName) |
void | registerPMaker (void *iPMaker, const std::string &iName) |
void * | tryToFindPMaker (const std::string &iName) const |
Private Member Functions | |
void | checkProperLoadable (const std::string &iName, const std::string &iLoadedFrom) const |
const PluginFactoryBase & | operator= (const PluginFactoryBase &) |
PluginFactoryBase (const PluginFactoryBase &) | |
Private Attributes | |
Plugins | m_plugins |
Definition at line 36 of file PluginFactoryBase.h.
typedef tbb::concurrent_unordered_map<std::string, PMakers > edmplugin::PluginFactoryBase::Plugins |
Definition at line 68 of file PluginFactoryBase.h.
typedef tbb::concurrent_vector<PluginMakerInfo> edmplugin::PluginFactoryBase::PMakers |
Definition at line 67 of file PluginFactoryBase.h.
|
inline |
|
virtual |
|
private |
|
virtual |
return info about all plugins which are already available in the program
Reimplemented in edmplugin::PluginCapabilities.
Definition at line 172 of file PluginFactoryBase.cc.
References fillAvailable(), and m_plugins.
|
pure virtual |
returns the name of the category to which this plugin factory belongs
Implemented in edmplugin::PluginFactory< R *(Args...)>, and edmplugin::PluginCapabilities.
Referenced by checkProperLoadable(), findPMaker(), newPlugin(), and tryToFindPMaker().
|
private |
Definition at line 147 of file PluginFactoryBase.cc.
References category(), Exception, edmplugin::PluginManager::get(), edmplugin::PluginManager::isAvailable(), edmplugin::PluginManager::loadableFor(), and edmplugin::PluginManager::staticallyLinkedLoadingFileName().
Referenced by findPMaker(), and tryToFindPMaker().
|
protected |
Definition at line 135 of file PluginFactoryBase.cc.
References fillInfo(), info(), m_plugins, and edmplugin::PluginInfo::name_.
Referenced by available().
|
protected |
Definition at line 122 of file PluginFactoryBase.cc.
References edmplugin::PluginInfo::loadable_.
Referenced by fillAvailable().
|
protected |
Definition at line 76 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_alisetup::lib, edmplugin::PluginManager::load(), m_plugins, edmplugin::SharedLibrary::path(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by edmplugin::PluginFactory< R *(Args...)>::create().
|
protected |
call this as the last line in the constructor of inheriting classes this is done so that the virtual table will be properly initialized when the routine is called
Definition at line 60 of file PluginFactoryBase.cc.
References edmplugin::PluginFactoryManager::addFactory(), and edmplugin::PluginFactoryManager::get().
Referenced by edmplugin::PluginCapabilities::PluginCapabilities().
|
protected |
Definition at line 66 of file PluginFactoryBase.cc.
References category(), info(), edmplugin::PluginInfo::loadable_, edmplugin::PluginManager::loadingFile(), edmplugin::PluginInfo::name_, newPluginAdded_, and callgraph::path.
Referenced by registerPMaker().
|
private |
|
protected |
Definition at line 165 of file PluginFactoryBase.cc.
References edmplugin::PluginManager::loadingFile(), m_plugins, and newPlugin().
Referenced by edmplugin::PluginFactory< R *(Args...)>::registerPMaker().
|
protected |
Definition at line 98 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_alisetup::lib, m_plugins, edmplugin::SharedLibrary::path(), AlCaHLTBitMon_QueryRunRegistry::string, and edmplugin::PluginManager::tryToLoad().
Referenced by edmplugin::PluginFactory< R *(Args...)>::tryToCreate().
|
private |
Definition at line 117 of file PluginFactoryBase.h.
Referenced by available(), fillAvailable(), findPMaker(), registerPMaker(), and tryToFindPMaker().
|
mutable |
signal containing plugin category, and plugin info for newly added plugin
Definition at line 79 of file PluginFactoryBase.h.
Referenced by newPlugin(), std::operator<<(), and edmplugin::PluginCapabilities::tryToFind().