artdaq_mfextensions  v1_03_01
ReceiverMacros.hh
1 #ifndef mfextensions_Receivers_ReceiverMacros_hh
2 #define mfextensions_Receivers_ReceiverMacros_hh
3 
4 #include "mfextensions/Receivers/MVReceiver.hh"
5 #include "fhiclcpp/fwd.h"
6 
7 #include "cetlib/compiler_macros.h"
8 #include <memory>
9 
10 namespace mfviewer
11 {
17  typedef std::unique_ptr<mfviewer::MVReceiver> makeFunc_t(fhicl::ParameterSet const& ps);
18 }
19 
20 #ifndef EXTERN_C_FUNC_DECLARE_START
21 #define EXTERN_C_FUNC_DECLARE_START extern "C" {
22 #endif
23 
24 #define DEFINE_MFVIEWER_RECEIVER(klass) \
25  EXTERN_C_FUNC_DECLARE_START \
26  std::unique_ptr<mfviewer::MVReceiver> \
27  make(fhicl::ParameterSet const & ps) { \
28  return std::unique_ptr<mfviewer::MVReceiver>(new klass(ps)); \
29  }}
30 #endif /* mfextensions_Receivers_RecevierMacros_h */