CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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> class WorkerT;
34  class ProductRegistry;
35  class ThinnedAssociationsHelper;
36 
37  namespace stream {
38  class EDProducerAdaptorBase;
39  template<typename> class ProducingModuleAdaptorBase;
40 
42  {
43  //This needs access to the parentage cache info
44  friend class EDProducerAdaptorBase;
46 
47  public:
49 
51  virtual ~EDProducerBase();
52 
53  static void fillDescriptions(ConfigurationDescriptions& descriptions);
54  static void prevalidate(ConfigurationDescriptions& descriptions);
55  static const std::string& baseType();
56 
57  // Warning: the returned moduleDescription will be invalid during construction
59  return *moduleDescriptionPtr_;
60  }
61  private:
62  EDProducerBase(const EDProducerBase&) = delete; // stop default
63 
64  const EDProducerBase& operator=(const EDProducerBase&) = delete; // stop default
65 
66  virtual void beginStream(StreamID) {}
67  virtual void beginRun(edm::Run const&, edm::EventSetup const&) {}
69  virtual void produce(Event&, EventSetup const&) = 0;
71  virtual void endRun(edm::Run const&, edm::EventSetup const&) {}
72  virtual void endStream(){}
73 
74  virtual void preForkReleaseResources() {}
75  virtual void postForkReacquireResources(unsigned int /*iChildIndex*/, unsigned int /*iNumberOfChildren*/) {}
78 
80  moduleDescriptionPtr_ = iDesc;
81  }
82  // ---------- member data --------------------------------
83  std::vector<BranchID> previousParentage_;
86  };
87 
88  }
89 }
90 
91 
92 
93 #endif
virtual void produce(Event &, EventSetup const &)=0
static void prevalidate(ConfigurationDescriptions &descriptions)
std::vector< BranchID > previousParentage_
static void fillDescriptions(ConfigurationDescriptions &descriptions)
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
static const std::string & baseType()
const EDProducerBase & operator=(const EDProducerBase &)=delete
virtual void preForkReleaseResources()
void setModuleDescriptionPtr(ModuleDescription const *iDesc)
ModuleDescription const * moduleDescriptionPtr_
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
ModuleDescription const & moduleDescription() const
virtual void registerThinnedAssociations(ProductRegistry const &, ThinnedAssociationsHelper &)
virtual void endRun(edm::Run const &, edm::EventSetup const &)
EDProducerAdaptorBase ModuleType
virtual void beginStream(StreamID)
virtual void postForkReacquireResources(unsigned int, unsigned int)
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: Run.h:41