00001 // -*- C++ -*- 00002 // 00003 // Package: Framework 00004 // Class : ESProducerLooper 00005 // 00006 // Implementation: 00007 // <Notes on implementation> 00008 // 00009 // Original Author: Chris Jones 00010 // Created: Mon Jul 17 09:34:30 EDT 2006 00011 // $Id: ESProducerLooper.cc,v 1.2 2006/09/01 18:16:42 wmtan Exp $ 00012 // 00013 00014 // system include files 00015 00016 // user include files 00017 #include "FWCore/Framework/interface/ESProducerLooper.h" 00018 00019 using namespace edm; 00020 using namespace edm::eventsetup; 00021 // 00022 // constants, enums and typedefs 00023 // 00024 00025 // 00026 // static data member definitions 00027 // 00028 00029 // 00030 // constructors and destructor 00031 // 00032 ESProducerLooper::ESProducerLooper() 00033 { 00034 } 00035 00036 // ESProducerLooper::ESProducerLooper(const ESProducerLooper& rhs) 00037 // { 00038 // // do actual copying here; 00039 // } 00040 /* 00041 ESProducerLooper::~ESProducerLooper() 00042 { 00043 } 00044 */ 00045 // 00046 // assignment operators 00047 // 00048 // const ESProducerLooper& ESProducerLooper::operator=(const ESProducerLooper& rhs) 00049 // { 00050 // //An exception safe implementation is 00051 // ESProducerLooper temp(rhs); 00052 // swap(rhs); 00053 // 00054 // return *this; 00055 // } 00056 00057 // 00058 // member functions 00059 // 00060 void 00061 ESProducerLooper::setIntervalFor(const EventSetupRecordKey&, 00062 const IOVSyncValue&, 00063 ValidityInterval& oInterval) 00064 { 00065 //since non of the dependent records are valid, I will create one that is valid 00066 // at the beginning of time BUT must also be checked every request 00067 //oInterval = ValidityInterval(IOVSyncValue::beginOfTime(), 00068 // IOVSyncValue::invalidIOVSyncValue()); 00069 // } 00070 //} else { 00071 //Give one valid for all time 00072 oInterval = ValidityInterval(IOVSyncValue::beginOfTime(), 00073 IOVSyncValue::endOfTime()); 00074 //} 00075 } 00076 00077 //use this to 'snoop' on what records are being used by the Producer 00078 void 00079 ESProducerLooper::registerFactoryWithKey(const eventsetup::EventSetupRecordKey& iRecord , 00080 std::auto_ptr<eventsetup::ProxyFactoryBase>& iFactory, 00081 const std::string& iLabel ) 00082 { 00083 findingRecordWithKey(iRecord); 00084 ESProxyFactoryProducer::registerFactoryWithKey(iRecord, iFactory,iLabel); 00085 } 00086 00087 // 00088 // const member functions 00089 // 00090 std::set<eventsetup::EventSetupRecordKey> 00091 ESProducerLooper::modifyingRecords() const { 00092 return findingForRecords(); 00093 } 00094 // 00095 // static member functions 00096 //