#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 &)=delete |
PluginFactoryBase (const PluginFactoryBase &)=delete | |
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 62 of file PluginFactoryBase.h.
typedef tbb::concurrent_vector<PluginMakerInfo> edmplugin::PluginFactoryBase::PMakers |
Definition at line 61 of file PluginFactoryBase.h.
|
inline |
|
virtual |
|
privatedelete |
|
virtual |
return info about all plugins which are already available in the program
Reimplemented in edmplugin::PluginCapabilities.
Definition at line 151 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 129 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 121 of file PluginFactoryBase.cc.
References fillInfo(), info(), m_plugins, and edmplugin::PluginInfo::name_.
Referenced by available().
|
protected |
Definition at line 112 of file PluginFactoryBase.cc.
References edmplugin::PluginInfo::loadable_.
Referenced by fillAvailable().
|
protected |
Definition at line 65 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_check::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 56 of file PluginFactoryBase.cc.
References edmplugin::PluginFactoryManager::addFactory(), and edmplugin::PluginFactoryManager::get().
Referenced by edmplugin::PluginCapabilities::PluginCapabilities().
|
protected |
Definition at line 58 of file PluginFactoryBase.cc.
References category(), info(), edmplugin::PluginInfo::loadable_, edmplugin::PluginManager::loadingFile(), edmplugin::PluginInfo::name_, newPluginAdded_, and callgraph::path.
Referenced by registerPMaker().
|
privatedelete |
|
protected |
Definition at line 145 of file PluginFactoryBase.cc.
References edmplugin::PluginManager::loadingFile(), m_plugins, and newPlugin().
Referenced by edmplugin::PluginFactory< R *(Args...)>::registerPMaker().
|
protected |
Definition at line 87 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_check::lib, m_plugins, edmplugin::SharedLibrary::path(), AlCaHLTBitMon_QueryRunRegistry::string, and edmplugin::PluginManager::tryToLoad().
Referenced by edmplugin::PluginFactory< R *(Args...)>::tryToCreate().
|
private |
Definition at line 109 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 73 of file PluginFactoryBase.h.
Referenced by newPlugin(), std::operator<<(), and edmplugin::PluginCapabilities::tryToFind().