CMS 3D CMS Logo

EDProducerBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_EDProducerBase_h
2 #define FWCore_Framework_stream_EDProducerBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : EDProducerBase
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 02 Aug 2013 00:11:27 GMT
19 //
20 
21 // system include files
22 
23 // user include files
30 
31 // forward declarations
32 namespace edm {
33  template <typename T>
34  class WorkerT;
35  class ProductRegistry;
36  class ThinnedAssociationsHelper;
37  class WaitingTaskWithArenaHolder;
38 
39  namespace stream {
40  class EDProducerAdaptorBase;
41  template <typename>
42  class ProducingModuleAdaptorBase;
43 
45  //This needs access to the parentage cache info
46  friend class EDProducerAdaptorBase;
48 
49  public:
51 
53  EDProducerBase(const EDProducerBase&) = delete; // stop default
54  const EDProducerBase& operator=(const EDProducerBase&) = delete; // stop default
55  ~EDProducerBase() override;
56 
57  static void fillDescriptions(ConfigurationDescriptions& descriptions);
58  static void prevalidate(ConfigurationDescriptions& descriptions);
59  static const std::string& baseType();
60 
61  // Warning: the returned moduleDescription will be invalid during construction
63 
64  private:
65  virtual void beginStream(StreamID) {}
66  virtual void beginRun(edm::Run const&, edm::EventSetup const&) {}
68  virtual void produce(Event&, EventSetup const&) = 0;
70  virtual void endRun(edm::Run const&, edm::EventSetup const&) {}
71  virtual void endStream() {}
72 
74 
75  virtual void doAcquire_(Event const&, EventSetup const&, WaitingTaskWithArenaHolder&) = 0;
76 
78  // ---------- member data --------------------------------
79  std::vector<BranchID> previousParentage_;
80  std::vector<BranchID> gotBranchIDsFromAcquire_;
83  };
84 
85  } // namespace stream
86 } // namespace edm
87 
88 #endif
edm::StreamID
Definition: StreamID.h:30
edm::stream::EDProducerBase::endRun
virtual void endRun(edm::Run const &, edm::EventSetup const &)
Definition: EDProducerBase.h:70
edm::stream::EDProducerBase::doAcquire_
virtual void doAcquire_(Event const &, EventSetup const &, WaitingTaskWithArenaHolder &)=0
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::Run
Definition: Run.h:45
edm::stream::EDProducerBase::endStream
virtual void endStream()
Definition: EDProducerBase.h:71
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::stream::EDProducerBase::registerThinnedAssociations
virtual void registerThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
Definition: EDProducerBase.h:73
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
edm::stream::EDProducerBase::moduleDescription
ModuleDescription const & moduleDescription() const
Definition: EDProducerBase.h:62
edm::stream::EDProducerBase::prevalidate
static void prevalidate(ConfigurationDescriptions &descriptions)
Definition: EDProducerBase.cc:72
edm::stream::EDProducerBase
Definition: EDProducerBase.h:44
edm::stream::EDProducerBase::produce
virtual void produce(Event &, EventSetup const &)=0
edm::stream::EDProducerBase::~EDProducerBase
~EDProducerBase() override
Definition: EDProducerBase.cc:41
edm::stream::EDProducerAdaptorBase
Definition: EDProducerAdaptorBase.h:48
edm::stream::EDProducerBase::setModuleDescriptionPtr
void setModuleDescriptionPtr(ModuleDescription const *iDesc)
Definition: EDProducerBase.h:77
edm::stream::EDProducerBase::EDProducerBase
EDProducerBase()
Definition: EDProducerBase.cc:34
edm::ModuleDescription
Definition: ModuleDescription.h:21
edm::ProductRegistry
Definition: ProductRegistry.h:37
ModuleDescription.h
edm::WaitingTaskWithArenaHolder
Definition: WaitingTaskWithArenaHolder.h:31
edm::EDConsumerBase
Definition: EDConsumerBase.h:70
edm::stream::EDProducerBase::moduleDescriptionPtr_
ModuleDescription const * moduleDescriptionPtr_
Definition: EDProducerBase.h:82
edm::stream::EDProducerBase::fillDescriptions
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: EDProducerBase.cc:66
edm::stream::EDProducerBase::operator=
const EDProducerBase & operator=(const EDProducerBase &)=delete
edm::stream::EDProducerBase::baseType
static const std::string & baseType()
Definition: EDProducerBase.cc:76
edm::Hash< ParentageType >
ProducerBase.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EDProducerAdaptor.h
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:37
EDConsumerBase.h
edm::stream::EDProducerBase::gotBranchIDsFromAcquire_
std::vector< BranchID > gotBranchIDsFromAcquire_
Definition: EDProducerBase.h:80
edm::stream::EDProducerBase::beginRun
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
Definition: EDProducerBase.h:66
edm::stream::EDProducerBase::previousParentageId_
ParentageID previousParentageId_
Definition: EDProducerBase.h:81
edm::EventSetup
Definition: EventSetup.h:57
edm::stream::ProducingModuleAdaptorBase
Definition: Event.h:70
edm::stream::EDProducerBase::endLuminosityBlock
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: EDProducerBase.h:69
Frameworkfwd.h
ParameterSetfwd.h
edm::stream::EDProducerBase::beginStream
virtual void beginStream(StreamID)
Definition: EDProducerBase.h:65
edm::ProducerBase
Definition: ProducerBase.h:70
edm::Event
Definition: Event.h:73
edm::stream::EDProducerBase::beginLuminosityBlock
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: EDProducerBase.h:67
edm::stream::EDProducerBase::ModuleType
EDProducerAdaptorBase ModuleType
Definition: EDProducerBase.h:50
edm::stream::EDProducerBase::previousParentage_
std::vector< BranchID > previousParentage_
Definition: EDProducerBase.h:79