#include <PluginFactoryBase.h>
Classes | |
struct | PluginMakerInfo |
Public Types | |
typedef oneapi::tbb::concurrent_unordered_map< std::string, PMakers > | Plugins |
typedef oneapi::tbb::concurrent_vector< PluginMakerInfo, edm::zero_allocator< 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... | |
const PluginFactoryBase & | operator= (const PluginFactoryBase &)=delete |
PluginFactoryBase () | |
PluginFactoryBase (const PluginFactoryBase &)=delete | |
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 |
Private Attributes | |
Plugins | m_plugins |
Definition at line 37 of file PluginFactoryBase.h.
typedef oneapi::tbb::concurrent_unordered_map<std::string, PMakers> edmplugin::PluginFactoryBase::Plugins |
Definition at line 65 of file PluginFactoryBase.h.
typedef oneapi::tbb::concurrent_vector<PluginMakerInfo, edm::zero_allocator<PluginMakerInfo> > edmplugin::PluginFactoryBase::PMakers |
Definition at line 64 of file PluginFactoryBase.h.
|
inline |
Definition at line 39 of file PluginFactoryBase.h.
|
delete |
|
virtual |
Definition at line 40 of file PluginFactoryBase.cc.
|
virtual |
return info about all plugins which are already available in the program
Reimplemented in edmplugin::PluginCapabilities.
Definition at line 161 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 134 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 126 of file PluginFactoryBase.cc.
References fillInfo(), info(), and m_plugins.
Referenced by available().
|
protected |
Definition at line 117 of file PluginFactoryBase.cc.
References edmplugin::PluginInfo::loadable_.
Referenced by fillAvailable().
|
protected |
Definition at line 66 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 57 of file PluginFactoryBase.cc.
References edmplugin::PluginFactoryManager::addFactory(), and edmplugin::PluginFactoryManager::get().
Referenced by edmplugin::PluginCapabilities::PluginCapabilities().
|
protected |
Definition at line 59 of file PluginFactoryBase.cc.
References category(), info(), edmplugin::PluginManager::loadingFile(), newPluginAdded_, and castor_dqm_sourceclient_file_cfg::path.
Referenced by registerPMaker().
|
delete |
|
protected |
Definition at line 150 of file PluginFactoryBase.cc.
References cms::cuda::assert(), edmplugin::PluginManager::loadingFile(), m_plugins, eostools::move(), and newPlugin().
Referenced by edmplugin::PluginFactory< R *(Args...)>::registerPMaker().
|
protected |
Definition at line 92 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 77 of file PluginFactoryBase.h.
Referenced by newPlugin(), and edmplugin::PluginCapabilities::tryToFind().