67 if( not iLoadable.
symbol(
"SEAL_CAPABILITIES",sym) ) {
74 reinterpret_cast<void (*)(
const char**&,
int&)
>(
reinterpret_cast<unsigned long>(sym))(
names,
size);
98 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName <<
"' is supposed to be in file\n '" 99 <<lib.
path().string()<<
"'\n but no dictionaries are in that file.\n" 100 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib.
path().string()<<
"'.";
104 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName<<
"' is supposed to be in file\n '" 105 <<lib.
path().string()<<
"'\n but was not found.\n" 106 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib.
path().string()<<
"'.";
117 if(
nullptr == lib) {
122 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName <<
"' is supposed to be in file\n '" 123 <<lib->
path().string()<<
"'\n but no dictionaries are in that file.\n" 124 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib->
path().string()<<
"'.";
128 throw cms::Exception(
"PluginNotFound")<<
"The dictionary for class '"<<iName<<
"' is supposed to be in file\n '" 129 <<lib->
path().string()<<
"'\n but was not found.\n" 130 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "<<lib->
path().string()<<
"'.";
138 std::vector<PluginInfo>
142 std::vector<PluginInfo>
infos;
145 for(std::map<std::string, boost::filesystem::path>::const_iterator it =
classToLoadable_.begin();
148 info.
name_ = it->first;
150 infos.push_back(info);
bool symbol(const std::string &iSymbolName, void *&iSymbol) const
const SharedLibrary * tryToLoad(const std::string &iCategory, const std::string &iPlugin)
bool tryToFind(const SharedLibrary &iLoadable)
Check to see if any capabilities are in the file, returns 'true' if found.
const std::string names[nVars_]
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