#include <PluginFactory.h>
|
| PluginFactory (cet::search_path const &search_path, std::string const &suffix="plugin") |
|
void | setDiagReleaseVersion (std::string const &rv) |
|
void | setDiagReleaseVersion (std::function< std::string()> rvf) |
|
template<typename RESULT_TYPE , typename... ARGS> |
RESULT_TYPE | call (std::string const &libspec, std::string const &funcname, ARGS &&...args) const |
|
template<typename RESULT_TYPE , typename... ARGS> |
auto | find (std::string const &funcname, std::string const &libspec) const -> RESULT_TYPE(*)(ARGS...) |
|
template<typename RESULT_TYPE , typename... ARGS> |
auto | find (std::string const &funcname, std::string const &libspec, LibraryManager::nothrow_t) const -> RESULT_TYPE(*)(ARGS...) |
|
template<typename FUNCTION_TYPE > |
std::enable_if_t< std::is_function_v< FUNCTION_TYPE >, FUNCTION_TYPE * > | find (std::string const &funcname, std::string const &libspec) const |
|
virtual | ~PluginFactory ()=default |
|
| PluginFactory (PluginFactory const &)=delete |
|
PluginFactory & | operator= (PluginFactory const &)=delete |
|
Definition at line 35 of file PluginFactory.h.
virtual cet::PluginFactory::~PluginFactory |
( |
| ) |
|
|
virtualdefault |
template<typename RESULT_TYPE , typename... ARGS>
RESULT_TYPE cet::PluginFactory::call |
( |
std::string const & |
libspec, |
|
|
std::string const & |
funcname, |
|
|
ARGS &&... |
args |
|
) |
| const |
|
inline |
Definition at line 107 of file PluginFactory.h.
111 return (*find<RESULT_TYPE, ARGS...>(libspec, funcname))(
112 std::forward<ARGS>(
args)...);
template<typename RESULT_TYPE , typename... ARGS>
auto cet::PluginFactory::find |
( |
std::string const & |
funcname, |
|
|
std::string const & |
libspec |
|
) |
| const -> RESULT_TYPE (*)(ARGS...) |
|
inline |
Definition at line 127 of file PluginFactory.h.
131 RESULT_TYPE (*symbol)(ARGS...) =
nullptr;
void resolveSymbolOrThrow_(std::string const &libspec, std::string const &funcname, T &symbol) const
template<typename RESULT_TYPE , typename... ARGS>
Definition at line 138 of file PluginFactory.h.
static LibraryManager::nothrow_t nothrow
T getSymbolByLibspec(std::string const &libspec, std::string const &sym_name) const
template<typename FUNCTION_TYPE >
std::enable_if_t< std::is_function_v< FUNCTION_TYPE >, FUNCTION_TYPE * > cet::PluginFactory::find |
( |
std::string const & |
funcname, |
|
|
std::string const & |
libspec |
|
) |
| const |
|
inline |
Definition at line 117 of file PluginFactory.h.
120 FUNCTION_TYPE** symbol{
nullptr};
void resolveSymbolOrThrow_(std::string const &libspec, std::string const &funcname, T &symbol) const
std::string cet::PluginFactory::releaseVersion_ |
( |
| ) |
const |
|
private |
Definition at line 11 of file PluginFactory.cc.
std::function< std::string()> releaseVersionFunc_
std::string releaseVersionString_
template<typename T >
void cet::PluginFactory::resolveSymbolOrThrow_ |
( |
std::string const & |
libspec, |
|
|
std::string const & |
funcname, |
|
|
T & |
symbol |
|
) |
| const |
|
private |
Definition at line 149 of file PluginFactory.h.
160 if (symbol ==
nullptr) {
161 throw exception(
"Configuration",
"BadPluginLibrary")
163 <<
" has internal symbol definition problems: consult an expert.";
std::string releaseVersion_() const
T getSymbolByLibspec(std::string const &libspec, std::string const &sym_name) const
void wrapLibraryManagerException(cet::exception const &e, std::string const &item_type, std::string const &libspec, std::string const &release)
cet::coded_exception< error, detail::translate > exception
void cet::PluginFactory::setDiagReleaseVersion |
( |
std::string const & |
rv | ) |
|
|
inline |
Definition at line 94 of file PluginFactory.h.
std::function< std::string()> releaseVersionFunc_
std::string cet::PluginFactory::releaseVersionString_ {} |
|
private |
The documentation for this class was generated from the following files: