|
|
Go to the documentation of this file.
60 if (not iLoadable.
symbol(
"SEAL_CAPABILITIES", sym)) {
67 reinterpret_cast<void (*)(const char**&, int&)>(reinterpret_cast<unsigned long>(sym))(
names,
size);
70 for (
int i = 0;
i <
size; ++
i) {
89 <<
"The dictionary for class '" << iName <<
"' is supposed to be in file\n '" <<
lib.path().string()
90 <<
"'\n but no dictionaries are in that file.\n"
91 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "
92 <<
lib.path().string() <<
"'.";
97 <<
"The dictionary for class '" << iName <<
"' is supposed to be in file\n '" <<
lib.path().string()
98 <<
"'\n but was not found.\n"
99 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "
100 <<
lib.path().string() <<
"'.";
108 if (
nullptr ==
lib) {
114 <<
"The dictionary for class '" << iName <<
"' is supposed to be in file\n '" <<
lib->path().string()
115 <<
"'\n but no dictionaries are in that file.\n"
116 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "
117 <<
lib->path().string() <<
"'.";
122 <<
"The dictionary for class '" << iName <<
"' is supposed to be in file\n '" <<
lib->path().string()
123 <<
"'\n but was not found.\n"
124 "It appears like the cache is wrong. Please do 'EdmPluginRefresh "
125 <<
lib->path().string() <<
"'.";
135 std::vector<PluginInfo>
infos;
138 for (std::map<std::string, std::filesystem::path>::const_iterator it =
classToLoadable_.begin();
141 info.name_ = it->first;
142 info.loadable_ = it->second;
static PluginCapabilities * get()
const SharedLibrary & load(const std::string &iCategory, const std::string &iPlugin)
~PluginCapabilities() override
static PluginManager * get()
const std::string names[nVars_]
const std::filesystem::path & path() const
const std::string & category() const override
returns the name of the category to which this plugin factory belongs
edm::signalslot::Signal< void(const std::string &, const PluginInfo &)> newPluginAdded_
signal containing plugin category, and plugin info for newly added plugin
std::map< std::string, std::filesystem::path > classToLoadable_
std::vector< PluginInfo > available() const override
return info about all plugins which are already available in the program
bool tryToLoad(const std::string &iName)
void finishedConstruction()
bool tryToFind(const SharedLibrary &iLoadable)
Check to see if any capabilities are in the file, returns 'true' if found.
void load(const std::string &iName)
const SharedLibrary * tryToLoad(const std::string &iCategory, const std::string &iPlugin)
bool symbol(const std::string &iSymbolName, void *&iSymbol) const