CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/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 #include <utility>
00009 
00010 #include "boost/shared_ptr.hpp"
00011 
00012 #include "DataFormats/Provenance/interface/EventID.h"
00013 #include "FWCore/Framework/interface/InputSource.h"
00014 #include "FWCore/Framework/interface/Frameworkfwd.h"
00015 
00016 namespace edm {
00017   class ParameterSet;
00018   class Timestamp;
00019   class RawInputSource : public InputSource {
00020   public:
00021     explicit RawInputSource(ParameterSet const& pset, InputSourceDescription const& desc);
00022     virtual ~RawInputSource();
00023     static void fillDescription(ParameterSetDescription& description);
00024 
00025   protected:
00026     EventPrincipal* makeEvent(EventPrincipal& eventPrincipal, EventAuxiliary const& eventAuxiliary);
00027     virtual bool checkNextEvent() = 0;
00028     virtual EventPrincipal* read(EventPrincipal& eventPrincipal) = 0;
00029     void setInputFileTransitionsEachEvent() {inputFileTransitionsEachEvent_ = true;}
00030 
00031   private:
00032     virtual EventPrincipal* readEvent_(EventPrincipal& eventPrincipal);
00033     virtual boost::shared_ptr<LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_();
00034     virtual boost::shared_ptr<RunAuxiliary> readRunAuxiliary_();
00035     virtual void reset_();
00036     virtual void rewind_();
00037     virtual ItemType getNextItemType();
00038     virtual void preForkReleaseResources();
00039 
00040     bool inputFileTransitionsEachEvent_;
00041   };
00042 }
00043 #endif