![]() |
![]() |
00001 #ifndef EVF_SHMOUTPUTMODULE_REGISTRY_H 00002 #define EVF_SHMOUTPUTMODULE_REGISTRY_H 00003 00004 #include <string> 00005 #include <map> 00006 #include <vector> 00007 00008 namespace edm{ 00009 class ParameterSet; 00010 class FUShmOutputModule; 00011 } 00012 00013 00014 00015 namespace evf 00016 { 00017 00018 class OutputModule{ 00019 public: 00020 virtual unsigned int getCounts()=0; 00021 }; 00022 class ShmOutputModuleRegistry 00023 { 00024 public: 00025 ShmOutputModuleRegistry(const edm::ParameterSet &); 00026 OutputModule *get(std::string &name); 00027 void registerModule(std::string &name, OutputModule *op); 00028 void dumpRegistry(); 00029 std::vector<edm::FUShmOutputModule *> getShmOutputModules(); 00030 00031 private: 00032 typedef std::map<std::string, OutputModule*> dct; 00033 typedef dct::iterator idct; 00034 void clear(); 00035 dct clm_; 00036 friend class FWEPWrapper; 00037 }; 00038 } 00039 #endif 00040