Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:10

0001 #ifndef Framework_Sources_ProducerSourceBase_h
0002 #define Framework_Sources_ProducerSourceBase_h
0003 
0004 /*----------------------------------------------------------------------
0005 ----------------------------------------------------------------------*/
0006 
0007 #include "FWCore/Sources/interface/PuttableSourceBase.h"
0008 #include "FWCore/Sources/interface/IDGeneratorSourceBase.h"
0009 #include "FWCore/Framework/interface/Frameworkfwd.h"
0010 #include "DataFormats/Provenance/interface/EventAuxiliary.h"
0011 #include "DataFormats/Provenance/interface/EventID.h"
0012 #include "DataFormats/Provenance/interface/Timestamp.h"
0013 #include "DataFormats/Provenance/interface/RunID.h"
0014 #include "DataFormats/Provenance/interface/LuminosityBlockID.h"
0015 #include "DataFormats/Provenance/interface/RunLumiEventNumber.h"
0016 
0017 #include <memory>
0018 #include <vector>
0019 
0020 namespace edm {
0021   class ParameterSet;
0022   class ParameterSetDescription;
0023   class ProducerSourceBase : public IDGeneratorSourceBase<PuttableSourceBase> {
0024   public:
0025     explicit ProducerSourceBase(ParameterSet const& pset, InputSourceDescription const& desc, bool realData);
0026     ~ProducerSourceBase() noexcept(false) override;
0027 
0028   protected:
0029   private:
0030     virtual void produce(Event& e) = 0;
0031 
0032     void readEvent_(EventPrincipal& eventPrincipal) override;
0033   };
0034 }  // namespace edm
0035 #endif