1 #ifndef cetlib_BasicPluginFactory_h 2 #define cetlib_BasicPluginFactory_h 23 class BasicPluginFactory;
32 std::string const& pluginTypeFuncName =
"pluginType");
37 std::string const& pluginTypeFuncName =
"pluginType");
40 template <
typename RESULT_TYPE,
typename... ARGS>
44 template <
typename FUNCTION_TYPE>
46 std::function<FUNCTION_TYPE>>
63 template <
typename RESULT_TYPE,
typename... ARGS>
67 return call<RESULT_TYPE>(libspec,
makerName_, std::forward<ARGS>(
args)...);
70 template <
typename FUNCTION_TYPE>
72 std::function<FUNCTION_TYPE>>
75 return find<FUNCTION_TYPE>(libspec,
makerName_);
std::string const pluginTypeFuncName_
std::string pluginType(std::string const &libspec)
std::string const makerName_
const XML_Char int const XML_Char * value
BasicPluginFactory(cet::search_path const &search_path, std::string const &suffix="plugin", std::string const &makerName="makePlugin", std::string const &pluginTypeFuncName="pluginType")
std::enable_if_t<!std::is_function< RESULT_TYPE >::value, RESULT_TYPE > makePlugin(std::string const &libspec, ARGS &&...args)