artdaq_utilities  v1_02_02
 All Classes
MetricMacros.hh
1 #ifndef artdaq_Plugins_MetricMacros_hh
2 #define artdaq_Plugins_MetricMacros_hh
3 
4 #include "artdaq-utilities/Plugins/MetricPlugin.hh"
5 #include "fhiclcpp/fwd.h"
6 
7 #include <memory>
8 
9 namespace artdaq
10 {
11  typedef std::unique_ptr<artdaq::MetricPlugin>
12  (makeFunc_t)(fhicl::ParameterSet const& ps);
13 }
14 
15 #define DEFINE_ARTDAQ_METRIC(klass) \
16  extern "C" \
17  std::unique_ptr<artdaq::MetricPlugin> \
18  make(fhicl::ParameterSet const & ps) { \
19  return std::unique_ptr<artdaq::MetricPlugin>(new klass(ps)); \
20  }
21 
22 #endif /* artdaq_Plugins_MetricMacros_hh */