CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/FWCore/Framework/interface/ESProducerLooper.h

Go to the documentation of this file.
00001 #ifndef Framework_ESProducerLooper_h
00002 #define Framework_ESProducerLooper_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Framework
00006 // Class  :     ESProducerLooper
00007 // 
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Mon Jul 17 09:03:32 EDT 2006
00019 // $Id: ESProducerLooper.h,v 1.2 2010/07/24 14:15:26 wmtan Exp $
00020 //
00021 
00022 // system include files
00023 #include <memory>
00024 #include <set>
00025 #include <string>
00026 
00027 // user include files
00028 #include "FWCore/Framework/interface/ESProducer.h"
00029 #include "FWCore/Framework/interface/EDLooper.h"
00030 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
00031 
00032 // forward declarations
00033 namespace edm {
00034   class ESProducerLooper : public ESProducer, public EventSetupRecordIntervalFinder, public EDLooper
00035 {
00036 
00037    public:
00038       ESProducerLooper();
00039       //virtual ~ESProducerLooper();
00040 
00041       // ---------- const member functions ---------------------
00042 
00043       // ---------- static member functions --------------------
00044 
00045       virtual std::set<eventsetup::EventSetupRecordKey> modifyingRecords() const;
00046       // ---------- member functions ---------------------------
00047 
00048    protected:
00049       void setIntervalFor(const eventsetup::EventSetupRecordKey& iKey,
00050                           const IOVSyncValue& iTime, 
00051                           ValidityInterval& oInterval);
00052         
00053       //use this to 'snoop' on what records are being used by the Producer
00054       virtual void registerFactoryWithKey(const eventsetup::EventSetupRecordKey& iRecord ,
00055                                           std::auto_ptr<eventsetup::ProxyFactoryBase>& iFactory,
00056                                           const std::string& iLabel= std::string() );
00057 private:
00058       ESProducerLooper(const ESProducerLooper&); // stop default
00059 
00060       const ESProducerLooper& operator=(const ESProducerLooper&); // stop default
00061 
00062       // ---------- member data --------------------------------
00063 
00064 };
00065 }
00066 
00067 #endif