CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/FWCore/Framework/src/EventSetupsController.h

Go to the documentation of this file.
00001 #ifndef FWCore_Framework_EventSetupsController_h
00002 #define FWCore_Framework_EventSetupsController_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Framework
00006 // Class  :     EventSetupsController
00007 // 
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Wed Jan 12 14:30:42 CST 2011
00019 //
00020 
00021 // user include files
00022 #include "DataFormats/Provenance/interface/ParameterSetID.h"
00023 
00024 // system include files
00025 #include <boost/shared_ptr.hpp>
00026 
00027 #include <map>
00028 #include <vector>
00029 
00030 // forward declarations
00031 namespace edm {
00032   class EventSetupRecordIntervalFinder;
00033    class ParameterSet;
00034    class IOVSyncValue;
00035    
00036    namespace eventsetup {
00037       class EventSetupProvider;
00038       
00039       class EventSetupsController {
00040          
00041       public:
00042          EventSetupsController();
00043          //virtual ~EventSetupsController();
00044          
00045          // ---------- const member functions ---------------------
00046          
00047          // ---------- static member functions --------------------
00048          
00049          // ---------- member functions ---------------------------
00050          boost::shared_ptr<EventSetupProvider> makeProvider(ParameterSet&);
00051 
00052          void eventSetupForInstance(IOVSyncValue const& syncValue) const;
00053 
00054          void forceCacheClear() const;
00055 
00056          boost::shared_ptr<EventSetupRecordIntervalFinder> const* getAlreadyMadeESSource(ParameterSet const& pset) const;
00057          void putESSource(ParameterSet const& pset, boost::shared_ptr<EventSetupRecordIntervalFinder> const& component);
00058          void clearComponents();
00059 
00060       private:
00061          EventSetupsController(EventSetupsController const&); // stop default
00062          
00063          EventSetupsController const& operator=(EventSetupsController const&); // stop default
00064          
00065          // ---------- member data --------------------------------
00066          std::vector<boost::shared_ptr<EventSetupProvider> > providers_;
00067 
00068          std::multimap<ParameterSetID, std::pair<ParameterSet const*, boost::shared_ptr<EventSetupRecordIntervalFinder> > > essources_;
00069       };
00070    }
00071 }
00072 #endif