CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ConsumesCollector.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ConsumesCollector_h
2 #define FWCore_Framework_ConsumesCollector_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : edm::ConsumesCollector
7 //
24 //
25 // Original Author: Chris Jones
26 // Created: Fri, 07 Jun 2013 12:44:47 GMT
27 //
28 
29 // system include files
30 
31 // user include files
33 
34 // forward declarations
35 namespace edm {
36  class EDConsumerBase;
37 
39  {
40 
41  public:
42 
43  ConsumesCollector() = delete;
44  ConsumesCollector(ConsumesCollector const&) = default;
48 
49  // ---------- member functions ---------------------------
50  template <typename ProductType, BranchType B=InEvent>
52  return m_consumer->consumes<ProductType,B>(tag);
53  }
54 
56  return m_consumer->consumes(id,tag);
57  }
58 
59  template <BranchType B>
61  return m_consumer->consumes<B>(id,tag);
62  }
63 
64  template <typename ProductType, BranchType B=InEvent>
66  return m_consumer->mayConsume<ProductType,B>(tag);
67  }
68 
69 
71  return m_consumer->mayConsume(id,tag);
72  }
73 
74  template <BranchType B>
76  return m_consumer->mayConsume<B>(id,tag);
77  }
78 
79  template <typename ProductType, BranchType B=InEvent>
80  void consumesMany() {
81  m_consumer->consumesMany<ProductType,B>();
82  }
83 
84 
85  void consumesMany(const TypeToGet& id) {
87  }
88 
89  template <BranchType B>
90  void consumesMany(const TypeToGet& id) {
92  }
93 
94 
95  private:
96  //only EDConsumerBase is allowed to make an instance of this class
97  friend class EDConsumerBase;
98 
100  m_consumer(iConsumer) {}
101 
102  // ---------- member data --------------------------------
104 
105  };
106 }
107 
108 
109 #endif
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
ConsumesCollector & operator=(ConsumesCollector const &)=default
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
ConsumesCollector(EDConsumerBase *iConsumer)
EDConsumerBase * m_consumer
void consumesMany(const TypeToGet &id)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
EDGetToken consumes(const TypeToGet &id, edm::InputTag const &tag)
void consumesMany(const TypeToGet &id)
EDGetToken consumes(TypeToGet const &id, edm::InputTag const &tag)
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)