00001 #ifndef mfextensions_Receivers_ReceiverMacros_hh
00002 #define mfextensions_Receivers_ReceiverMacros_hh
00003
00004 #include "fhiclcpp/fwd.h"
00005 #include "mfextensions/Receivers/MVReceiver.hh"
00006
00007 #include <memory>
00008 #include "cetlib/compiler_macros.h"
00009
00010 namespace mfviewer {
00016 typedef std::unique_ptr<mfviewer::MVReceiver> makeFunc_t(fhicl::ParameterSet const& ps);
00017 }
00018
00019 #ifndef EXTERN_C_FUNC_DECLARE_START
00020 #define EXTERN_C_FUNC_DECLARE_START extern "C" {
00021 #endif
00022
00023 #define DEFINE_MFVIEWER_RECEIVER(klass) \
00024 EXTERN_C_FUNC_DECLARE_START \
00025 std::unique_ptr<mfviewer::MVReceiver> make(fhicl::ParameterSet const& ps) { \
00026 return std::unique_ptr<mfviewer::MVReceiver>(new klass(ps)); \
00027 } \
00028 }
00029 #endif