CMS 3D CMS Logo

MayConsumeChooserBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_MayConsumeChooserBase_h
2 #define FWCore_Framework_MayConsumeChooserBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : MayConsumeChooserBase
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu, 19 Sep 2019 15:29:33 GMT
19 //
20 
21 // system include files
26 
27 // user include files
28 
29 // forward declarations
30 
31 namespace edm::eventsetup::impl {
32 
34  public:
35  virtual ~MayConsumeChooserCore() = default;
36 
37  virtual EventSetupRecordKey recordKey() const noexcept = 0;
38  virtual TypeTag productType() const noexcept = 0;
39 
40  void setTagGetter(ESTagGetter iGetter) { getter_ = std::move(iGetter); }
41 
42  protected:
43  ESTagGetter const& tagGetter() const { return getter_; }
44 
45  private:
47  };
48 
49  template <typename RCD>
51  public:
52  MayConsumeChooserBase() = default;
53  ~MayConsumeChooserBase() override = default;
54 
55  // ---------- const member functions ---------------------
56  virtual ESProxyIndex makeChoice(RCD const& iRecord) const = 0;
57  };
58 } // namespace edm::eventsetup::impl
59 
60 #endif
virtual TypeTag productType() const noexcept=0
#define noexcept
virtual EventSetupRecordKey recordKey() const noexcept=0
def move(src, dest)
Definition: eostools.py:511