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