#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 std::filesystem::path & | loadableFor (const std::string &iCategory, const std::string &iPlugin) |
const PluginManager & | operator= (const PluginManager &)=delete |
PluginManager (const PluginManager &)=delete | |
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 std::filesystem::path &)> | goingToLoad_ |
edm::signalslot::Signal< void(const SharedLibrary &)> | justLoaded_ |
Private Member Functions | |
const std::filesystem::path & | loadableFor_ (const std::string &iCategory, const std::string &iPlugin, bool &ioThrowIfFailElseSucceedStatus) |
void | newFactory (const PluginFactoryBase *) |
std::recursive_mutex & | pluginLoadMutex () |
PluginManager (const Config &) | |
Static Private Member Functions | |
static std::string & | loadingLibraryNamed_ () |
static PluginManager *& | singleton () |
Private Attributes | |
CategoryToInfos | categoryToInfos_ |
oneapi::tbb::concurrent_unordered_map< std::filesystem::path, std::shared_ptr< SharedLibrary >, PluginManagerPathHasher > | loadables_ |
std::recursive_mutex | pluginLoadMutex_ |
SearchPath | searchPath_ |
Friends | |
class | DummyFriend |
Definition at line 45 of file PluginManager.h.
typedef std::map<std::string, Infos> edmplugin::PluginManager::CategoryToInfos |
Definition at line 51 of file PluginManager.h.
typedef std::vector<PluginInfo> edmplugin::PluginManager::Infos |
Definition at line 50 of file PluginManager.h.
typedef std::vector<std::string> edmplugin::PluginManager::SearchPath |
Definition at line 49 of file PluginManager.h.
|
delete |
Referenced by configure().
PluginManager::~PluginManager | ( | ) |
Definition at line 123 of file PluginManager.cc.
|
private |
Definition at line 58 of file PluginManager.cc.
References edmplugin::PluginFactoryManager::begin(), edmplugin::standard::cachefileName(), categoryToInfos_, DeadROC_duringRun::dir, MillePedeFileConverter_cfg::e, edmplugin::PluginFactoryManager::end(), Exception, edmplugin::PluginFactoryManager::get(), mps_fire::i, loadingLibraryNamed_(), edmplugin::PluginManager::Config::mustHaveCache(), newFactory(), edmplugin::PluginFactoryManager::newFactory_, castor_dqm_sourceclient_file_cfg::path, edmplugin::standard::poisonedCachefileName(), edmplugin::readCacheFile(), and searchPath_.
|
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 82 of file PluginManager.h.
References categoryToInfos_.
Referenced by PrintLoadingPlugins::askedToLoad(), FWDetailViewManager::findViewersFor(), FWEveViewManager::FWEveViewManager(), FWItemAccessorFactory::hasAccessor(), main(), and sim::sensitiveDetectorMakers().
|
static |
Definition at line 315 of file PluginManager.cc.
References Exception, PluginManager(), alignCSCRings::s, edmplugin::PluginManager::Config::searchPath(), and singleton().
Referenced by FWLiteEnabler::enable(), edm::storage::StorageFactory::getMaker(), main(), edm::ProblemTracker::ProblemTracker(), cond::Utilities::run(), and edm::PluginDescription< T >::writeCfi_().
|
static |
Definition at line 306 of file PluginManager.cc.
References Exception, and singleton().
Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), submitPVValidationJobs.BetterConfigParser::__updateDict(), PrintLoadingPlugins::askedToLoad(), edmplugin::PluginFactoryBase::checkProperLoadable(), rrapi.RRApi::columns(), rrapi.RRApi::count(), rrapi.RRApi::data(), edmplugin::PluginFactoryBase::findPMaker(), FWDetailViewManager::findViewersFor(), FWEveViewManager::FWEveViewManager(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), submitPVValidationJobs.BetterConfigParser::getResultingSection(), FWItemAccessorFactory::hasAccessor(), edmplugin::PluginCapabilities::load(), edm::service::LoadAllDictionaries::LoadAllDictionaries(), main(), PrintLoadingPlugins::PrintLoadingPlugins(), edm::PluginDescription< T >::printNestedContent_(), rrapi.RRApi::report(), rrapi.RRApi::reports(), sim::sensitiveDetectorMakers(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), rrapi.RRApi::templates(), edmplugin::PluginFactoryBase::tryToFindPMaker(), edmplugin::PluginCapabilities::tryToLoad(), and rrapi.RRApi::workspaces().
|
static |
Definition at line 346 of file PluginManager.cc.
References singleton().
Referenced by edmplugin::PluginFactoryBase::checkProperLoadable(), edm::storage::StorageFactory::getMaker(), edm::ProblemTracker::ProblemTracker(), and edm::PluginDescription< T >::writeCfi_().
const SharedLibrary & PluginManager::load | ( | const std::string & | iCategory, |
const std::string & | iPlugin | ||
) |
Definition at line 226 of file PluginManager.cc.
References askedToLoadCategoryWithPlugin_, MillePedeFileConverter_cfg::e, goingToLoad_, justLoaded_, loadableFor(), loadables_, loadingLibraryNamed_(), AlCaHLTBitMon_ParallelJobs::p, castor_dqm_sourceclient_file_cfg::path, pluginLoadMutex(), and alignCSCRings::s.
Referenced by edmplugin::PluginFactoryBase::findPMaker(), and edmplugin::PluginCapabilities::load().
const std::filesystem::path & PluginManager::loadableFor | ( | const std::string & | iCategory, |
const std::string & | iPlugin | ||
) |
Definition at line 150 of file PluginManager.cc.
References loadableFor_().
Referenced by edmplugin::PluginFactoryBase::checkProperLoadable(), and load().
|
private |
Definition at line 155 of file PluginManager.cc.
References categoryToInfos_, Exception, mps_fire::i, castor_dqm_sourceclient_file_cfg::path, and FastTimerService_cff::range.
Referenced by loadableFor(), and tryToLoad().
|
inlinestatic |
file name of the shared object being loaded
Definition at line 89 of file PluginManager.h.
References loadingLibraryNamed_().
Referenced by edmplugin::PluginFactoryBase::newPlugin(), and edmplugin::PluginFactoryBase::registerPMaker().
|
staticprivate |
Definition at line 334 of file PluginManager.cc.
References CMS_THREAD_SAFE, staticallyLinkedLoadingFileName(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by load(), loadingFile(), PluginManager(), and tryToLoad().
|
private |
|
delete |
|
inlineprivate |
Definition at line 111 of file PluginManager.h.
References pluginLoadMutex_.
Referenced by load(), and tryToLoad().
|
staticprivate |
Definition at line 341 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 329 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 262 of file PluginManager.cc.
References askedToLoadCategoryWithPlugin_, MillePedeFileConverter_cfg::e, goingToLoad_, justLoaded_, loadableFor_(), loadables_, loadingLibraryNamed_(), AlCaHLTBitMon_ParallelJobs::p, castor_dqm_sourceclient_file_cfg::path, pluginLoadMutex(), and alignCSCRings::s.
Referenced by edmplugin::PluginFactoryBase::tryToFindPMaker(), and edmplugin::PluginCapabilities::tryToLoad().
|
friend |
Definition at line 46 of file PluginManager.h.
edm::signalslot::Signal<void(const std::string&, const std::string&)> edmplugin::PluginManager::askedToLoadCategoryWithPlugin_ |
Definition at line 102 of file PluginManager.h.
Referenced by load(), PrintLoadingPlugins::PrintLoadingPlugins(), and tryToLoad().
|
private |
Definition at line 121 of file PluginManager.h.
Referenced by categoryToInfos(), loadableFor_(), and PluginManager().
edm::signalslot::Signal<void(const std::filesystem::path&)> edmplugin::PluginManager::goingToLoad_ |
Definition at line 100 of file PluginManager.h.
Referenced by load(), PrintLoadingPlugins::PrintLoadingPlugins(), and tryToLoad().
edm::signalslot::Signal<void(const SharedLibrary&)> edmplugin::PluginManager::justLoaded_ |
Definition at line 101 of file PluginManager.h.
Referenced by load(), and tryToLoad().
|
private |
Definition at line 119 of file PluginManager.h.
Referenced by load(), and tryToLoad().
|
private |
Definition at line 122 of file PluginManager.h.
Referenced by pluginLoadMutex().
|
private |
Definition at line 117 of file PluginManager.h.
Referenced by PluginManager().