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