00001 #ifndef TDPGENERATORFACTORY__HH_ 00002 #define TDPGENERATORFACTORY__HH_ 00003 #include "TemplateFactory.h" 00004 00005 class TVDetectorPulseGenerator; 00006 class TDPGeneratorOptions; 00007 00008 class TDPGeneratorFactory:public TemplateFactory<TVDetectorPulseGenerator,TDPGeneratorOptions>{ 00009 private: 00010 TDPGeneratorFactory(): 00011 TemplateFactory<TVDetectorPulseGenerator,TDPGeneratorOptions>("TDPGeneratorFactory"){}; 00012 ~TDPGeneratorFactory(){}; 00013 public: 00014 // Get the single instance of this class 00015 static TDPGeneratorFactory* Instance(); 00016 }; 00017 00018 inline TDPGeneratorFactory* TDPGeneratorFactory::Instance(){ 00019 static TDPGeneratorFactory* instance=NULL; 00020 if(!instance) { 00021 instance=new TDPGeneratorFactory(); 00022 } 00023 return instance; 00024 } 00025 00026 #define ALCAP_TDP_GENERATOR( NAME , ... ) \ 00027 RegistryProxy<NAME##DPGenerator,TVDetectorPulseGenerator,TDPGeneratorOptions,TDPGeneratorFactory> p_DP##NAME(#NAME, #__VA_ARGS__); 00028 00029 00030 #endif // TDPGENERATORFACTORY__HH_