66 if( not iLoadable.
symbol(
"SEAL_CAPABILITIES",sym) ) {
73 reinterpret_cast<void (*)(
const char**&,
int&)
>(
reinterpret_cast<unsigned long>(sym))(
names,
size);
97 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName <<
"' is supposed to be in file\n '" 98 <<lib.
path().string()<<
"'\n but no dictionaries are in that file.\n" 99 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib.
path().string()<<
"'.";
103 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName<<
"' is supposed to be in file\n '" 104 <<lib.
path().string()<<
"'\n but was not found.\n" 105 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib.
path().string()<<
"'.";
116 if(
nullptr == lib) {
121 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName <<
"' is supposed to be in file\n '" 122 <<lib->
path().string()<<
"'\n but no dictionaries are in that file.\n" 123 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib->
path().string()<<
"'.";
127 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName<<
"' is supposed to be in file\n '" 128 <<lib->
path().string()<<
"'\n but was not found.\n" 129 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib->
path().string()<<
"'.";
137 std::vector<PluginInfo>
141 std::vector<PluginInfo>
infos;
144 for(std::map<std::string, boost::filesystem::path>::const_iterator it =
classToLoadable_.begin();
147 info.
name_ = it->first;
149 infos.push_back(info);
bool symbol(const std::string &iSymbolName, void *&iSymbol) const
const SharedLibrary * tryToLoad(const std::string &iCategory, const std::string &iPlugin)
static const HistoName names[]
bool tryToFind(const SharedLibrary &iLoadable)
Check to see if any capabilities are in the file, returns 'true' if found.
std::vector< PluginInfo > available() const override
return info about all plugins which are already available in the program
edm::signalslot::Signal< void(const std::string &, const PluginInfo &)> newPluginAdded_
signal containing plugin category, and plugin info for newly added plugin
void finishedConstruction()
static PluginCapabilities * get()
bool tryToLoad(const std::string &iName)
std::map< std::string, boost::filesystem::path > classToLoadable_
const std::string & category() const override
returns the name of the category to which this plugin factory belongs
void load(const std::string &iName)
boost::filesystem::path loadable_
const SharedLibrary & load(const std::string &iCategory, const std::string &iPlugin)
const boost::filesystem::path & path() const
static PluginManager * get()
~PluginCapabilities() override