Go to the documentation of this file. 1 #ifndef FWCore_PluginManager_PluginManager_h
2 #define FWCore_PluginManager_PluginManager_h
29 #include "tbb/concurrent_unordered_map.h"
50 typedef std::vector<PluginInfo>
Infos;
115 bool& ioThrowIfFailElseSucceedStatus);
std::vector< std::string > SearchPath
const SharedLibrary & load(const std::string &iCategory, const std::string &iPlugin)
const SearchPath & searchPath() const
tbb::concurrent_unordered_map< std::filesystem::path, std::shared_ptr< SharedLibrary >, PluginManagerPathHasher > loadables_
bool mustHaveCache() const
static PluginManager * get()
const CategoryToInfos & categoryToInfos() const
size_t operator()(std::filesystem::path const &iPath) const
std::recursive_mutex & pluginLoadMutex()
edm::signalslot::Signal< void(const std::filesystem::path &)> goingToLoad_
const std::filesystem::path & loadableFor(const std::string &iCategory, const std::string &iPlugin)
std::map< std::string, Infos > CategoryToInfos
static PluginManager *& singleton()
std::vector< PluginInfo > Infos
std::recursive_mutex pluginLoadMutex_
const PluginManager & operator=(const PluginManager &)=delete
static PluginManager & configure(const Config &)
PluginManager(const PluginManager &)=delete
static std::string & loadingLibraryNamed_()
void newFactory(const PluginFactoryBase *)
Config & searchPath(const SearchPath &iPath)
edm::signalslot::Signal< void(const std::string &, const std::string &)> askedToLoadCategoryWithPlugin_
const std::filesystem::path & loadableFor_(const std::string &iCategory, const std::string &iPlugin, bool &ioThrowIfFailElseSucceedStatus)
CategoryToInfos categoryToInfos_
TEMPL(T2) struct Divides void
static const std::string & staticallyLinkedLoadingFileName()
if the value returned from loadingFile matches this string then the file is statically linked
static const std::string & loadingFile()
file name of the shared object being loaded
static bool isAvailable()
const SharedLibrary * tryToLoad(const std::string &iCategory, const std::string &iPlugin)
edm::signalslot::Signal< void(const SharedLibrary &)> justLoaded_