#include <PluginManager.h>
Classes | |
class | Config |
Public Types | |
typedef std::map< std::string, Infos > | CategoryToInfos |
typedef std::vector< PluginInfo > | Infos |
typedef std::vector< std::string > | SearchPath |
Public Member Functions | |
const CategoryToInfos & | categoryToInfos () const |
const SharedLibrary & | load (const std::string &iCategory, const std::string &iPlugin) |
const boost::filesystem::path & | loadableFor (const std::string &iCategory, const std::string &iPlugin) |
const SharedLibrary * | tryToLoad (const std::string &iCategory, const std::string &iPlugin) |
~PluginManager () | |
Static Public Member Functions | |
static PluginManager & | configure (const Config &) |
static PluginManager * | get () |
static bool | isAvailable () |
static const std::string & | loadingFile () |
file name of the shared object being loaded More... | |
static const std::string & | staticallyLinkedLoadingFileName () |
if the value returned from loadingFile matches this string then the file is statically linked More... | |
Public Attributes | |
edm::signalslot::Signal< void(const std::string &, const std::string &)> | askedToLoadCategoryWithPlugin_ |
edm::signalslot::Signal< void(const boost::filesystem::path &)> | goingToLoad_ |
edm::signalslot::Signal< void(const SharedLibrary &)> | justLoaded_ |
Private Member Functions | |
const boost::filesystem::path & | loadableFor_ (const std::string &iCategory, const std::string &iPlugin, bool &ioThrowIfFailElseSucceedStatus) |
void | newFactory (const PluginFactoryBase *) |
const PluginManager & | operator= (const PluginManager &)=delete |
std::recursive_mutex & | pluginLoadMutex () |
PluginManager (const Config &) | |
PluginManager (const PluginManager &)=delete | |
Static Private Member Functions | |
static std::string & | loadingLibraryNamed_ () |
static PluginManager *& | singleton () |
Private Attributes | |
CategoryToInfos | categoryToInfos_ |
tbb::concurrent_unordered_map< boost::filesystem::path, std::shared_ptr< SharedLibrary >, PluginManagerPathHasher > | loadables_ |
std::recursive_mutex | pluginLoadMutex_ |
SearchPath | searchPath_ |
Friends | |
class | DummyFriend |
Definition at line 48 of file PluginManager.h.
typedef std::map<std::string, Infos > edmplugin::PluginManager::CategoryToInfos |
Definition at line 54 of file PluginManager.h.
typedef std::vector<PluginInfo> edmplugin::PluginManager::Infos |
Definition at line 53 of file PluginManager.h.
typedef std::vector<std::string> edmplugin::PluginManager::SearchPath |
Definition at line 52 of file PluginManager.h.
PluginManager::~PluginManager | ( | ) |
Definition at line 128 of file PluginManager.cc.
|
private |
Definition at line 60 of file PluginManager.cc.
References edmplugin::PluginFactoryManager::begin(), edmplugin::standard::cachefileName(), categoryToInfos_, dir, MillePedeFileConverter_cfg::e, edmplugin::PluginFactoryManager::end(), Exception, edmplugin::PluginFactoryManager::get(), mps_fire::i, loadingLibraryNamed_(), edmplugin::PluginManager::Config::mustHaveCache(), newFactory(), edmplugin::PluginFactoryManager::newFactory_, callgraph::path, edmplugin::standard::poisonedCachefileName(), edmplugin::readCacheFile(), and searchPath_.
Referenced by configure().
|
privatedelete |
|
inline |
The container is ordered by category, then plugin name and then by precidence order of the plugin files. Therefore the first match on category and plugin name will be the proper file to load
Definition at line 90 of file PluginManager.h.
References AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by PrintLoadingPlugins::askedToLoad(), FWDetailViewManager::findViewersFor(), FWEveViewManager::FWEveViewManager(), FWItemAccessorFactory::hasAccessor(), edm::service::LoadAllDictionaries::LoadAllDictionaries(), and main().
|
static |
Definition at line 335 of file PluginManager.cc.
References Exception, PluginManager(), alignCSCRings::s, edmplugin::PluginManager::Config::searchPath(), singleton(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by FWLiteEnabler::enable(), StorageFactory::getMaker(), main(), edm::ProblemTracker::ProblemTracker(), cond::Utilities::run(), and edm::PluginDescription< T >::writeCfi_().
|
static |
Definition at line 325 of file PluginManager.cc.
References Exception, and singleton().
Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), edmplugin::PluginFactoryBase::checkProperLoadable(), rrapi.RRApi::columns(), rrapi.RRApi::count(), rrapi.RRApi::data(), edmplugin::PluginFactoryBase::findPMaker(), FWDetailViewManager::findViewersFor(), FWEveViewManager::FWEveViewManager(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getResultingSection(), FWItemAccessorFactory::hasAccessor(), edmplugin::PluginCapabilities::load(), edm::service::LoadAllDictionaries::LoadAllDictionaries(), main(), edm::PluginDescription< T >::printNestedContent_(), rrapi.RRApi::report(), rrapi.RRApi::reports(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), edmplugin::PluginFactoryBase::tryToFindPMaker(), edmplugin::PluginCapabilities::tryToLoad(), and rrapi.RRApi::workspaces().
|
static |
Definition at line 374 of file PluginManager.cc.
References singleton().
Referenced by edmplugin::PluginFactoryBase::checkProperLoadable(), StorageFactory::getMaker(), and edm::ProblemTracker::ProblemTracker().
const SharedLibrary & PluginManager::load | ( | const std::string & | iCategory, |
const std::string & | iPlugin | ||
) |
Definition at line 248 of file PluginManager.cc.
References askedToLoadCategoryWithPlugin_, goingToLoad_, justLoaded_, loadableFor(), loadables_, loadingLibraryNamed_(), AlCaHLTBitMon_ParallelJobs::p, callgraph::path, pluginLoadMutex(), and alignCSCRings::s.
Referenced by edmplugin::PluginFactoryBase::findPMaker(), and edmplugin::PluginCapabilities::load().
const boost::filesystem::path & PluginManager::loadableFor | ( | const std::string & | iCategory, |
const std::string & | iPlugin | ||
) |
Definition at line 164 of file PluginManager.cc.
References loadableFor_(), and callgraph::path.
Referenced by edmplugin::PluginFactoryBase::checkProperLoadable(), and load().
|
private |
Definition at line 172 of file PluginManager.cc.
References categoryToInfos_, Exception, mps_fire::i, edmplugin::PluginInfo::name_, oldPath_, callgraph::path, path_, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by loadableFor(), and tryToLoad().
|
inlinestatic |
file name of the shared object being loaded
Definition at line 100 of file PluginManager.h.
References AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by edmplugin::PluginFactoryBase::newPlugin(), and edmplugin::PluginFactoryBase::registerPMaker().
|
staticprivate |
Definition at line 359 of file PluginManager.cc.
References CMS_THREAD_SAFE, staticallyLinkedLoadingFileName(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by load(), PluginManager(), and tryToLoad().
|
private |
Definition at line 148 of file PluginManager.cc.
References edmplugin::PluginInfo::name_, and callgraph::path.
Referenced by PluginManager().
|
privatedelete |
|
inlineprivate |
Definition at line 126 of file PluginManager.h.
References callgraph::path, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by load(), and tryToLoad().
|
staticprivate |
Definition at line 367 of file PluginManager.cc.
References CMS_THREAD_SAFE.
Referenced by configure(), get(), and isAvailable().
|
static |
if the value returned from loadingFile matches this string then the file is statically linked
Definition at line 352 of file PluginManager.cc.
References AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by edmplugin::PluginFactoryBase::checkProperLoadable(), and loadingLibraryNamed_().
const SharedLibrary * PluginManager::tryToLoad | ( | const std::string & | iCategory, |
const std::string & | iPlugin | ||
) |
Definition at line 282 of file PluginManager.cc.
References askedToLoadCategoryWithPlugin_, goingToLoad_, justLoaded_, loadableFor_(), loadables_, loadingLibraryNamed_(), AlCaHLTBitMon_ParallelJobs::p, callgraph::path, pluginLoadMutex(), and alignCSCRings::s.
Referenced by edmplugin::PluginFactoryBase::tryToFindPMaker(), and edmplugin::PluginCapabilities::tryToLoad().
|
friend |
Definition at line 50 of file PluginManager.h.
edm::signalslot::Signal<void(const std::string&,const std::string&)> edmplugin::PluginManager::askedToLoadCategoryWithPlugin_ |
Definition at line 115 of file PluginManager.h.
Referenced by load(), PrintLoadingPlugins::PrintLoadingPlugins(), and tryToLoad().
|
private |
Definition at line 135 of file PluginManager.h.
Referenced by loadableFor_(), and PluginManager().
edm::signalslot::Signal<void(const boost::filesystem::path&)> edmplugin::PluginManager::goingToLoad_ |
Definition at line 113 of file PluginManager.h.
Referenced by load(), PrintLoadingPlugins::PrintLoadingPlugins(), and tryToLoad().
edm::signalslot::Signal<void(const SharedLibrary&)> edmplugin::PluginManager::justLoaded_ |
Definition at line 114 of file PluginManager.h.
Referenced by load(), and tryToLoad().
|
private |
Definition at line 133 of file PluginManager.h.
Referenced by load(), and tryToLoad().
|
private |
Definition at line 136 of file PluginManager.h.
|
private |
Definition at line 132 of file PluginManager.h.
Referenced by PluginManager().