00001 #ifndef artdaq_Plugins_MetricMacros_hh
00002 #define artdaq_Plugins_MetricMacros_hh
00003
00004 #include "artdaq-utilities/Plugins/MetricPlugin.hh"
00005 #include "fhiclcpp/fwd.h"
00006
00007 #include <memory>
00008
00009 namespace artdaq
00010 {
00011 typedef std::unique_ptr<artdaq::MetricPlugin>
00012 (makeFunc_t)(fhicl::ParameterSet const& ps);
00013 }
00014
00015 #define DEFINE_ARTDAQ_METRIC(klass) \
00016 extern "C" \
00017 std::unique_ptr<artdaq::MetricPlugin> \
00018 make(fhicl::ParameterSet const & ps) { \
00019 return std::unique_ptr<artdaq::MetricPlugin>(new klass(ps)); \
00020 }
00021
00022 #endif