00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef RT_LAB_OBJECT_FACTORY_H_ 00004 #define RT_LAB_OBJECT_FACTORY_H_ 00005 00006 #include <string> 00007 00008 namespace fesa 00009 { 00010 00011 /*CR: Naming: Creates at the moment only EventSources */ 00012 00013 class RealTimeLabObjectFactory 00014 { 00015 public: 00023 AbstractEventSource* createTimingEventSource(const std::string&); 00024 00032 AbstractEventSource* createTimingSimulationEventSource(const std::string&); 00033 00039 static RealTimeLabObjectFactory* getInstance(); 00040 00044 virtual ~RealTimeLabObjectFactory(); 00045 00046 protected: 00047 00051 RealTimeLabObjectFactory(); 00052 00057 static RealTimeLabObjectFactory* theInstance_; 00058 }; 00059 00060 } // fesa 00061 00062 #endif // RT_LAB_OBJECT_FACTORY_H_