CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/EventFilter/Modules/interface/ShmOutputModuleRegistry.h

Go to the documentation of this file.
00001 #ifndef EVF_SHMOUTPUTMODULE_REGISTRY_H
00002 #define EVF_SHMOUTPUTMODULE_REGISTRY_H
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 #include <string>
00006 #include <map>
00007 #include <vector>
00008 
00009 
00010 namespace edm{
00011   class ParameterSet;
00012   class FUShmOutputModule;
00013 }
00014 
00015 
00016 
00017 namespace evf
00018 {
00019   
00020   class OutputModule{
00021   public: 
00022     virtual unsigned int getCounts()=0;
00023   };
00024   class ShmOutputModuleRegistry
00025     {
00026     public:
00027       ShmOutputModuleRegistry(const edm::ParameterSet &);
00028       OutputModule *get(std::string &name);
00029       void registerModule(std::string &name, OutputModule *op);
00030       void dumpRegistry();
00031       std::vector<edm::FUShmOutputModule *> getShmOutputModules();
00032 
00033       void updateDatasetInfo();
00034       std::string getDatasetCSV();
00035       std::vector<edm::FUShmOutputModule *> & getShmOutputModulesWithDatasets() {return shmOutputsWithDatasets_;}
00036       void insertStreamAndDatasetInfo(edm::ParameterSet & streams, edm::ParameterSet & datasets);
00037 
00038     private:
00039       typedef std::map<std::string, OutputModule*> dct;
00040       typedef dct::iterator idct;
00041       void clear();
00042       dct clm_;
00043       std::vector<edm::FUShmOutputModule *> shmOutputsWithDatasets_;
00044       std::vector<std::string> listOfDatasets_;
00045       friend class FWEPWrapper;
00046     };
00047 }
00048 #endif
00049