CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/FWCore/Sources/interface/RawInputSource.h

Go to the documentation of this file.
00001 #ifndef FWCore_Sources_RawInputSource_h
00002 #define FWCore_Sources_RawInputSource_h
00003 
00004 /*----------------------------------------------------------------------
00005 ----------------------------------------------------------------------*/
00006 
00007 #include <memory>
00008 
00009 #include "boost/shared_ptr.hpp"
00010 
00011 #include "DataFormats/Provenance/interface/EventID.h"
00012 #include "FWCore/Framework/interface/InputSource.h"
00013 #include "FWCore/Framework/interface/Frameworkfwd.h"
00014 
00015 namespace edm {
00016   class ParameterSet;
00017   class Timestamp;
00018   class RawInputSource : public InputSource {
00019   public:
00020     explicit RawInputSource(ParameterSet const& pset, InputSourceDescription const& desc);
00021     virtual ~RawInputSource();
00022 
00023   protected:
00024     std::auto_ptr<Event> makeEvent(RunNumber_t run, LuminosityBlockNumber_t lumi, EventNumber_t event, Timestamp const& tstamp);
00025     virtual std::auto_ptr<Event> readOneEvent() = 0;
00026 
00027   private:
00028     virtual EventPrincipal* readEvent_();
00029     virtual boost::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_();
00030     virtual boost::shared_ptr<RunAuxiliary> readRunAuxiliary_();
00031     virtual EventPrincipal* readIt(EventID const& eventID);
00032     virtual void skip(int offset);
00033     virtual ItemType getNextItemType();
00034     
00035     RunNumber_t runNumber_;
00036     LuminosityBlockNumber_t luminosityBlockNumber_;
00037     bool newRun_;
00038     bool newLumi_;
00039     bool eventCached_;
00040   };
00041 }
00042 #endif