00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef USER_EVENT_SOURCE_H 00004 #define USER_EVENT_SOURCE_H 00005 00006 #include <string> 00007 #include <fesa-core/RealTime/AbstractEventSource.h> 00008 #include <boost/shared_ptr.hpp> 00009 00010 namespace fesa 00011 { 00012 00013 class RTEvent; 00014 class OnDemandConsumer; 00015 00022 class OnDemandEventSource: public AbstractEventSource 00023 { 00024 00025 public: 00026 OnDemandEventSource(std::string name,boost::shared_ptr<OnDemandConsumer> eventConsumer); 00027 00028 virtual ~OnDemandEventSource(); 00029 00030 private: 00031 00032 void connect(boost::shared_ptr<fesa::EventElement>& eventElement); 00033 00037 RTEvent* wait(); 00038 00042 boost::shared_ptr<OnDemandConsumer> eventConsumer_; 00043 }; 00044 00045 } 00046 #endif