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 }
0035 #endif