CMS 3D CMS Logo

implementors.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_implementors_h
2 #define FWCore_Framework_stream_implementors_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : implementors
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 02 Aug 2013 11:52:34 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 
24 // user include files
30 
31 // forward declarations
32 namespace edm {
33 
34  class WaitingTaskWithArenaHolder;
35 
36  namespace stream {
37  namespace impl {
38  class EmptyType {};
39 
40 
41  template <typename C>
43  public:
44  GlobalCacheHolder() = default;
45  GlobalCacheHolder( GlobalCacheHolder<C> const&) = delete;
46  GlobalCacheHolder<C>& operator=(GlobalCacheHolder<C> const&) = delete;
47 
48  void setGlobalCache(C const* iCache) {
49  cache_=iCache;
50  }
51  protected:
52  C const* globalCache() const { return cache_; }
53  private:
54  C const* cache_;
55  };
56 
57  template <typename C>
59  public:
60  RunCacheHolder() = default;
61  RunCacheHolder( RunCacheHolder<C> const&) = delete;
62  RunCacheHolder<C>& operator=(RunCacheHolder<C> const&) = delete;
63  void setRunCache(C const* iCache) { cache_=iCache; }
64  protected:
65  C const* runCache() const { return cache_; }
66  private:
67  C const* cache_;
68  };
69 
70  template <typename C>
72  public:
73  LuminosityBlockCacheHolder() = default;
76  void setLuminosityBlockCache(C const* iCache) { cache_=iCache; }
77  protected:
78  C const* luminosityBlockCache() const { return cache_; }
79  private:
80  C const* cache_;
81  };
82 
83  template <typename C>
85  public:
86  RunSummaryCacheHolder() = default;
88  RunSummaryCacheHolder<C>& operator=(RunSummaryCacheHolder<C> const&) = delete;
90  private:
91  virtual void endRunSummary(edm::Run const&, edm::EventSetup const&, C*) const = 0;
92  };
93 
94  template <typename C>
96  public:
101  private:
102 
103  virtual void endLuminosityBlockSummary(edm::LuminosityBlock const&, edm::EventSetup const&, C*) const = 0;
104  };
105 
106 
108  public:
109  BeginRunProducer() = default;
110  BeginRunProducer( BeginRunProducer const&) = delete;
111  BeginRunProducer& operator=(BeginRunProducer const&) = delete;
112 
115  };
116 
118  public:
119  EndRunProducer() = default;
120  EndRunProducer( EndRunProducer const&) = delete;
121  EndRunProducer& operator=(EndRunProducer const&) = delete;
122 
123  private:
124 
127  };
128 
130  public:
131  BeginLuminosityBlockProducer() = default;
134 
135  private:
138  };
139 
141  public:
142  EndLuminosityBlockProducer() = default;
144  EndLuminosityBlockProducer& operator=(EndLuminosityBlockProducer const&) = delete;
145 
146  private:
149  };
150 
151  class ExternalWork {
152  public:
153  ExternalWork() = default;
154  ExternalWork(ExternalWork const&) = delete;
155  ExternalWork& operator=(ExternalWork const&) = delete;
156  virtual ~ExternalWork() noexcept(false) {};
157 
158  virtual void acquire(Event const&,
159  edm::EventSetup const&,
161  };
162 
163  class Accumulator : public EDProducerBase {
164  public:
165  Accumulator() = default;
166  Accumulator(Accumulator const&) = delete;
167  Accumulator& operator=(Accumulator const&) = delete;
168  virtual ~Accumulator() noexcept(false) {};
169 
170  virtual void accumulate(Event const& ev, EventSetup const& es) = 0;
171 
172  void produce(Event& ev, EventSetup const& es) final {
173  accumulate(ev, es);
174  }
175  };
176  }
177  }
178 }
179 
180 
181 #endif
#define noexcept
bool ev
void setGlobalCache(C const *iCache)
Definition: implementors.h:48
void setRunCache(C const *iCache)
Definition: implementors.h:63
HLT enums.
void produce(Event &ev, EventSetup const &es) final
Definition: implementors.h:172
Definition: Run.h:43