artdaq  v2_03_02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
GeneratorMacros.hh
1 #ifndef artdaq_Application_GeneratorMacros_hh
2 #define artdaq_Application_GeneratorMacros_hh
3 
4 #include "artdaq/Application/CommandableFragmentGenerator.hh"
5 #include "fhiclcpp/fwd.h"
6 
7 #include <memory>
8 
9 namespace artdaq
10 {
16  typedef std::unique_ptr<artdaq::CommandableFragmentGenerator> makeFunc_t(fhicl::ParameterSet const& ps);
17 }
18 
19 #define DEFINE_ARTDAQ_COMMANDABLE_GENERATOR(klass) \
20  extern "C" \
21  std::unique_ptr<artdaq::CommandableFragmentGenerator> \
22  make(fhicl::ParameterSet const & ps) { \
23  return std::unique_ptr<artdaq::CommandableFragmentGenerator>(new klass(ps)); \
24  }
25 
26 #endif /* artdaq_Application_GeneratorMacros_hh */
std::unique_ptr< artdaq::CommandableFragmentGenerator > makeFunc_t(fhicl::ParameterSet const &ps)
Constructs a CommandableFragmentGenerator instance, and returns a pointer to it.