1 #ifndef art_Utilities_ToolMacros_h 2 #define art_Utilities_ToolMacros_h 25 #include <type_traits> 33 #define ART_PROVIDE_ALLOWED_CONFIGURATION_FUNCTION_TOOL() \ 34 std::unique_ptr<fhicl::ConfigurationTable> allowed_configuration( \ 35 std::string const& name) \ 37 return std::make_unique<fhicl::WrappedTable<art::detail::ToolConfig>>( \ 42 #define DEFINE_ART_CLASS_TOOL(tool) \ 43 EXTERN_C_FUNC_DECLARE_START \ 44 CET_PROVIDE_FILE_PATH() \ 45 FHICL_PROVIDE_ALLOWED_CONFIGURATION(tool) \ 46 std::string toolType() { return "class"; } \ 47 std::enable_if_t<std::is_class<tool>::value, std::unique_ptr<tool>> \ 48 makeTool(fhicl::ParameterSet const& pset) \ 50 return std::make_unique<tool>(pset); \ 52 EXTERN_C_FUNC_DECLARE_END 54 #define DEFINE_ART_FUNCTION_TOOL(tool, type) \ 55 EXTERN_C_FUNC_DECLARE_START \ 56 CET_PROVIDE_FILE_PATH() \ 57 ART_PROVIDE_ALLOWED_CONFIGURATION_FUNCTION_TOOL() \ 58 std::string toolType() { return type; } \ 59 auto toolFunction = tool; \ 60 EXTERN_C_FUNC_DECLARE_END
ChannelGroupService::Name Name