#include <PluginFactoryBase.h>
Definition at line 36 of file PluginFactoryBase.h.
edmplugin::PluginFactoryBase::PluginFactoryBase |
( |
| ) |
|
|
inline |
PluginFactoryBase::~PluginFactoryBase |
( |
| ) |
|
|
virtual |
std::vector< PluginInfo > PluginFactoryBase::available |
( |
| ) |
const |
|
virtual |
virtual const std::string& edmplugin::PluginFactoryBase::category |
( |
| ) |
const |
|
pure virtual |
void PluginFactoryBase::checkProperLoadable |
( |
const std::string & |
iName, |
|
|
const std::string & |
iLoadedFrom |
|
) |
| const |
|
private |
void PluginFactoryBase::fillAvailable |
( |
std::vector< PluginInfo > & |
iReturn | ) |
const |
|
protected |
void * PluginFactoryBase::findPMaker |
( |
const std::string & |
iName | ) |
const |
|
protected |
Definition at line 65 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_check::lib, edmplugin::PluginManager::load(), m_plugins, edmplugin::SharedLibrary::path(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by edmplugin::PluginFactory< R *(Args...)>::create().
67 Plugins::const_iterator itFound =
m_plugins.find(iName);
73 <<
"The plugin '" << iName <<
"' should have been in loadable\n '" << lib
74 <<
"'\n but was not there. This means the plugin cache is incorrect. Please run 'EdmPluginRefresh " << lib
79 auto const&
value = itFound->second.front();
80 while (
value.m_ptr.load(std::memory_order_acquire) ==
nullptr) {
84 return itFound->second.front().m_ptr.load(std::memory_order_acquire);
virtual const std::string & category() const =0
returns the name of the category to which this plugin factory belongs
void checkProperLoadable(const std::string &iName, const std::string &iLoadedFrom) const
const SharedLibrary & load(const std::string &iCategory, const std::string &iPlugin)
const boost::filesystem::path & path() const
static PluginManager * get()
void PluginFactoryBase::finishedConstruction |
( |
| ) |
|
|
protected |
void PluginFactoryBase::newPlugin |
( |
const std::string & |
iName | ) |
|
|
protected |
void PluginFactoryBase::registerPMaker |
( |
void * |
iPMaker, |
|
|
const std::string & |
iName |
|
) |
| |
|
protected |
void * PluginFactoryBase::tryToFindPMaker |
( |
const std::string & |
iName | ) |
const |
|
protected |
Definition at line 87 of file PluginFactoryBase.cc.
References category(), checkProperLoadable(), Exception, edmplugin::PluginManager::get(), mps_check::lib, m_plugins, edmplugin::SharedLibrary::path(), AlCaHLTBitMon_QueryRunRegistry::string, and edmplugin::PluginManager::tryToLoad().
Referenced by edmplugin::PluginFactory< R *(Args...)>::tryToCreate().
89 Plugins::const_iterator itFound =
m_plugins.find(iName);
92 if (
nullptr != slib) {
97 <<
"The plugin '" << iName <<
"' should have been in loadable\n '" << lib
98 <<
"'\n but was not there. This means the plugin cache is incorrect. Please run 'EdmPluginRefresh " 104 auto const&
value = itFound->second.front();
105 while (
value.m_ptr.load(std::memory_order_acquire) ==
nullptr) {
109 return itFound !=
m_plugins.end() ? itFound->second.front().m_ptr.load(std::memory_order_acquire) :
nullptr;
const SharedLibrary * tryToLoad(const std::string &iCategory, const std::string &iPlugin)
virtual const std::string & category() const =0
returns the name of the category to which this plugin factory belongs
void checkProperLoadable(const std::string &iName, const std::string &iLoadedFrom) const
static PluginManager * get()
Plugins edmplugin::PluginFactoryBase::m_plugins |
|
private |