1 #ifndef art_Framework_Core_ModuleMacros_h 2 #define art_Framework_Core_ModuleMacros_h 24 #include "cetlib/ProvideFilePathMacro.h" 29 #include <type_traits> 37 template <
typename T,
typename =
void>
39 using type = fhicl::ParameterSet;
44 using type =
typename T::Parameters;
60 return new T{config, frame};
65 #define DEFINE_ART_MODULE(klass) \ 67 CET_PROVIDE_FILE_PATH() \ 68 FHICL_PROVIDE_ALLOWED_CONFIGURATION(klass) \ 70 make_module(fhicl::ParameterSet const& pset, \ 71 art::ProcessingFrame const& frame) \ 73 return art::detail::make_module<klass>(pset, frame); \ 78 return art::detail::ModuleTypeDeducer<klass::ModuleType>::value; \ 80 art::ModuleThreadingType \ 81 moduleThreadingType() \ 83 return art::detail::ModuleThreadingTypeDeducer<klass::ModuleType>::value; \
ModuleBase *(fhicl::ParameterSet const &, ProcessingFrame const &) ModuleMaker_t
T * make_module(fhicl::ParameterSet const &pset, ProcessingFrame const &frame)
typename config_for_impl< T >::type ConfigFor
ModuleType( ModuleTypeFunc_t)
ModuleThreadingType( ModuleThreadingTypeFunc_t)