CMS 3D CMS Logo

implementors.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_global_implementors_h
2 #define FWCore_Framework_global_implementors_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : implementors
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu, 18 Jul 2013 11:52:34 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 #include <mutex>
24 
25 // user include files
33 
34 // forward declarations
35 namespace edm {
36 
37  class WaitingTaskWithArenaHolder;
38 
39  namespace global {
40  namespace impl {
41  class EmptyType {};
42 
43  template <typename T, typename C>
44  class StreamCacheHolder : public virtual T {
45  public:
46  StreamCacheHolder() = default;
49  ~StreamCacheHolder() override {
50  for (auto c : caches_) {
51  delete c;
52  }
53  }
54 
55  protected:
56  C* streamCache(edm::StreamID iID) const { return caches_[iID.value()]; }
57 
58  private:
59  void preallocStreams(unsigned int iNStreams) final { caches_.resize(iNStreams, static_cast<C*>(nullptr)); }
60  void doBeginStream_(StreamID id) final { caches_[id.value()] = beginStream(id).release(); }
61  void doEndStream_(StreamID id) final {
62  endStream(id);
63  delete caches_[id.value()];
64  caches_[id.value()] = nullptr;
65  }
66  void doStreamBeginRun_(StreamID id, Run const& rp, EventSetup const& c) final { streamBeginRun(id, rp, c); }
67  void doStreamEndRun_(StreamID id, Run const& rp, EventSetup const& c) final { streamEndRun(id, rp, c); }
68  void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const& lbp, EventSetup const& c) final {
69  streamBeginLuminosityBlock(id, lbp, c);
70  }
71  void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const& lbp, EventSetup const& c) final {
72  streamEndLuminosityBlock(id, lbp, c);
73  }
74 
75  virtual std::unique_ptr<C> beginStream(edm::StreamID) const = 0;
76  virtual void streamBeginRun(edm::StreamID, edm::Run const&, edm::EventSetup const&) const {}
78  edm::LuminosityBlock const&,
79  edm::EventSetup const&) const {}
81  edm::LuminosityBlock const&,
82  edm::EventSetup const&) const {}
83  virtual void streamEndRun(edm::StreamID, edm::Run const&, edm::EventSetup const&) const {}
84  virtual void endStream(edm::StreamID) const {}
85 
86  //When threaded we will have a container for N items whre N is # of streams
87  std::vector<C*> caches_;
88  };
89 
90  template <typename T, typename C>
91  class InputProcessBlockCacheHolder : public virtual T {
92  public:
93  InputProcessBlockCacheHolder() = default;
97 
98  protected:
99  // Not implemented yet
100  // const C* inputProcessBlockCache(ProcessBlockIndex index) const { return caches_.at(index).get(); }
101 
102  private:
103  // Not yet fully implemented, will never get called
104  // THINK ABOUT HOW TO CLEAR CACHES!!!
105  void doAccessInputProcessBlock_(ProcessBlock const& pb) final {
106  caches_.push_back(accessInputProcessBlock(pb));
107  }
108 
109  // Not yet fully implemented, will never get called
110  virtual std::shared_ptr<C> accessInputProcessBlock(ProcessBlock const&) const = 0;
111 
112  std::vector<std::shared_ptr<C>> caches_;
113  };
114 
115  template <typename T, typename C>
116  class RunCacheHolder : public virtual T {
117  public:
118  RunCacheHolder() = default;
119  RunCacheHolder(RunCacheHolder<T, C> const&) = delete;
121  ~RunCacheHolder() noexcept(false) override{};
122 
123  protected:
124  C const* runCache(edm::RunIndex iID) const { return cache_.get(); }
125 
126  private:
127  void doBeginRun_(Run const& rp, EventSetup const& c) final { cache_ = globalBeginRun(rp, c); }
128  void doEndRun_(Run const& rp, EventSetup const& c) final {
129  globalEndRun(rp, c);
130  cache_ = nullptr; // propagate_const<T> has no reset() function
131  }
132 
133  virtual std::shared_ptr<C> globalBeginRun(edm::Run const&, edm::EventSetup const&) const = 0;
134  virtual void globalEndRun(edm::Run const&, edm::EventSetup const&) const = 0;
135  //When threaded we will have a container for N items whre N is # of simultaneous runs
137  };
138 
139  template <typename T, typename C>
140  class LuminosityBlockCacheHolder : public virtual T {
141  public:
142  LuminosityBlockCacheHolder() = default;
145  ~LuminosityBlockCacheHolder() noexcept(false) override{};
146 
147  protected:
148  void preallocLumis(unsigned int iNLumis) final { caches_.reset(new std::shared_ptr<C>[iNLumis]); }
149 
150  C const* luminosityBlockCache(edm::LuminosityBlockIndex iID) const { return caches_[iID].get(); }
151 
152  private:
153  void doBeginLuminosityBlock_(LuminosityBlock const& lp, EventSetup const& c) final {
154  caches_[lp.index()] = globalBeginLuminosityBlock(lp, c);
155  }
156  void doEndLuminosityBlock_(LuminosityBlock const& lp, EventSetup const& c) final {
158  caches_[lp.index()].reset();
159  }
160 
161  virtual std::shared_ptr<C> globalBeginLuminosityBlock(edm::LuminosityBlock const&,
162  edm::EventSetup const&) const = 0;
163  virtual void globalEndLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) const = 0;
164  //When threaded we will have a container for N items whre N is # of simultaneous runs
165  std::unique_ptr<std::shared_ptr<C>[]> caches_;
166  };
167 
168  template <typename T, typename C>
170 
171  template <typename T, typename C>
172  class RunSummaryCacheHolder : public virtual T {
173  public:
174  RunSummaryCacheHolder() = default;
177  ~RunSummaryCacheHolder() noexcept(false) override{};
178 
179  private:
180  friend class EndRunSummaryProducer<T, C>;
181  void doBeginRunSummary_(edm::Run const& rp, EventSetup const& c) final {
183  }
184  void doStreamEndRunSummary_(StreamID id, Run const& rp, EventSetup const& c) final {
185  //NOTE: in future this will need to be serialized
186  std::lock_guard<std::mutex> guard(mutex_);
187  streamEndRunSummary(id, rp, c, cache_.get());
188  }
189  void doEndRunSummary_(Run const& rp, EventSetup const& c) final { globalEndRunSummary(rp, c, cache_.get()); }
190 
191  virtual std::shared_ptr<C> globalBeginRunSummary(edm::Run const&, edm::EventSetup const&) const = 0;
192  virtual void streamEndRunSummary(StreamID, edm::Run const&, edm::EventSetup const&, C*) const = 0;
193 
194  virtual void globalEndRunSummary(edm::Run const&, edm::EventSetup const&, C*) const = 0;
195 
196  //When threaded we will have a container for N items where N is # of simultaneous runs
197  std::shared_ptr<C> cache_;
199  };
200 
201  template <typename T, typename C>
203 
204  template <typename T, typename C>
205  class LuminosityBlockSummaryCacheHolder : public virtual T {
206  public:
211 
212  private:
213  void preallocLumisSummary(unsigned int iNLumis) final { caches_.reset(new std::shared_ptr<C>[iNLumis]); }
214 
216 
218  caches_[lb.index()] = globalBeginLuminosityBlockSummary(lb, c);
219  }
220 
222  std::lock_guard<std::mutex> guard(mutex_);
223  streamEndLuminosityBlockSummary(id, lb, c, caches_[lb.index()].get());
224  }
226  globalEndLuminosityBlockSummary(lb, c, caches_[lb.index()].get());
227  maybeClearCache(lb);
228  }
229 
230  virtual std::shared_ptr<C> globalBeginLuminosityBlockSummary(edm::LuminosityBlock const&,
231  edm::EventSetup const&) const = 0;
233  edm::LuminosityBlock const&,
234  edm::EventSetup const&,
235  C*) const = 0;
236 
237  virtual void globalEndLuminosityBlockSummary(edm::LuminosityBlock const&, edm::EventSetup const&, C*) const = 0;
238 
239  virtual void maybeClearCache(LuminosityBlock const& lb) { caches_[lb.index()].reset(); }
240 
241  //When threaded we will have a container for N items where N is # of simultaneous Lumis
242  std::unique_ptr<std::shared_ptr<C>[]> caches_;
244  };
245 
246  template <typename T>
247  class WatchProcessBlock : public virtual T {
248  public:
249  WatchProcessBlock() = default;
250  WatchProcessBlock(WatchProcessBlock const&) = delete;
252  ~WatchProcessBlock() noexcept(false) override {}
253 
254  private:
255  void doBeginProcessBlock_(ProcessBlock const&) final;
256  void doEndProcessBlock_(ProcessBlock const&) final;
257 
258  virtual void beginProcessBlock(ProcessBlock const&) const {}
259  virtual void endProcessBlock(ProcessBlock const&) const {}
260  };
261 
262  template <typename T>
263  class BeginProcessBlockProducer : public virtual T {
264  public:
265  BeginProcessBlockProducer() = default;
268  ~BeginProcessBlockProducer() noexcept(false) override{};
269 
270  private:
272 
273  virtual void beginProcessBlockProduce(edm::ProcessBlock&) const = 0;
274  };
275 
276  template <typename T>
277  class EndProcessBlockProducer : public virtual T {
278  public:
279  EndProcessBlockProducer() = default;
282  ~EndProcessBlockProducer() noexcept(false) override{};
283 
284  private:
286 
287  virtual void endProcessBlockProduce(edm::ProcessBlock&) const = 0;
288  };
289 
290  template <typename T>
291  class BeginRunProducer : public virtual T {
292  public:
293  BeginRunProducer() = default;
294  BeginRunProducer(BeginRunProducer const&) = delete;
295  BeginRunProducer& operator=(BeginRunProducer const&) = delete;
296  ~BeginRunProducer() noexcept(false) override{};
297 
298  private:
299  void doBeginRunProduce_(Run& rp, EventSetup const& c) final;
300 
301  virtual void globalBeginRunProduce(edm::Run&, edm::EventSetup const&) const = 0;
302  };
303 
304  template <typename T>
305  class EndRunProducer : public virtual T {
306  public:
307  EndRunProducer() = default;
308  EndRunProducer(EndRunProducer const&) = delete;
309  EndRunProducer& operator=(EndRunProducer const&) = delete;
310  ~EndRunProducer() noexcept(false) override{};
311 
312  private:
313  void doEndRunProduce_(Run& rp, EventSetup const& c) final;
314 
315  virtual void globalEndRunProduce(edm::Run&, edm::EventSetup const&) const = 0;
316  };
317 
318  template <typename T, typename C>
319  class EndRunSummaryProducer : public RunSummaryCacheHolder<T, C> {
320  public:
321  EndRunSummaryProducer() = default;
324  ~EndRunSummaryProducer() noexcept(false) override{};
325 
326  private:
327  void doEndRunProduce_(Run& rp, EventSetup const& c) final {
329  }
330 
331  virtual void globalEndRunProduce(edm::Run&, edm::EventSetup const&, C const*) const = 0;
332  };
333 
334  template <typename T>
335  class BeginLuminosityBlockProducer : public virtual T {
336  public:
337  BeginLuminosityBlockProducer() = default;
340  ~BeginLuminosityBlockProducer() noexcept(false) override{};
341 
342  private:
345  };
346 
347  template <typename T>
348  class EndLuminosityBlockProducer : public virtual T {
349  public:
350  EndLuminosityBlockProducer() = default;
353  ~EndLuminosityBlockProducer() noexcept(false) override{};
354 
355  private:
358  };
359 
360  template <typename T, typename S>
361  class EndLuminosityBlockSummaryProducer : public LuminosityBlockSummaryCacheHolder<T, S> {
362  public:
367 
368  private:
372  }
373 
374  virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock&, edm::EventSetup const&, S const*) const = 0;
375 
376  // Do nothing because the cache is cleared in doEndLuminosityBlockProduce_
377  void maybeClearCache(LuminosityBlock const&) final {}
378  };
379 
380  template <typename T>
381  class ExternalWork : public virtual T {
382  public:
383  ExternalWork() = default;
384  ExternalWork(ExternalWork const&) = delete;
385  ExternalWork& operator=(ExternalWork const&) = delete;
386  ~ExternalWork() noexcept(false) override{};
387 
388  private:
389  bool hasAcquire() const override { return true; }
390 
392 
393  virtual void acquire(StreamID, Event const&, edm::EventSetup const&, WaitingTaskWithArenaHolder) const = 0;
394  };
395 
396  template <typename T>
397  class Accumulator : public virtual T {
398  public:
399  Accumulator() = default;
400  Accumulator(Accumulator const&) = delete;
401  Accumulator& operator=(Accumulator const&) = delete;
402  ~Accumulator() noexcept(false) override{};
403 
404  private:
405  bool hasAccumulator() const override { return true; }
406 
407  void produce(StreamID streamID, Event& ev, EventSetup const& es) const final { accumulate(streamID, ev, es); }
408 
409  virtual void accumulate(StreamID streamID, Event const& ev, EventSetup const& es) const = 0;
410  };
411  } // namespace impl
412  } // namespace global
413 } // namespace edm
414 
415 #endif
edm::global::impl::RunSummaryCacheHolder::cache_
std::shared_ptr< C > cache_
Definition: implementors.h:197
edm::global::impl::LuminosityBlockCacheHolder::preallocLumis
void preallocLumis(unsigned int iNLumis) final
Definition: implementors.h:148
edm::StreamID
Definition: StreamID.h:30
edm::global::impl::StreamCacheHolder::endStream
virtual void endStream(edm::StreamID) const
Definition: implementors.h:84
edm::global::impl::RunSummaryCacheHolder::RunSummaryCacheHolder
RunSummaryCacheHolder()=default
edm::global::impl::BeginProcessBlockProducer::operator=
BeginProcessBlockProducer & operator=(BeginProcessBlockProducer const &)=delete
edm::global::impl::EndRunSummaryProducer
Definition: implementors.h:169
edm::global::impl::StreamCacheHolder::caches_
std::vector< C * > caches_
Definition: implementors.h:87
funct::false
false
Definition: Factorize.h:29
edm::global::impl::ExternalWork::acquire
virtual void acquire(StreamID, Event const &, edm::EventSetup const &, WaitingTaskWithArenaHolder) const =0
edm::global::impl::WatchProcessBlock
Definition: implementors.h:247
edm::global::impl::EndLuminosityBlockSummaryProducer::globalEndLuminosityBlockProduce
virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &, S const *) const =0
edm::global::impl::BeginRunProducer::globalBeginRunProduce
virtual void globalBeginRunProduce(edm::Run &, edm::EventSetup const &) const =0
edm::global::impl::EndLuminosityBlockSummaryProducer::EndLuminosityBlockSummaryProducer
EndLuminosityBlockSummaryProducer()=default
edm::global::impl::LuminosityBlockCacheHolder::caches_
std::unique_ptr< std::shared_ptr< C >[]> caches_
Definition: implementors.h:165
propagate_const.h
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::global::impl::InputProcessBlockCacheHolder::accessInputProcessBlock
virtual std::shared_ptr< C > accessInputProcessBlock(ProcessBlock const &) const =0
edm::global::impl::RunCacheHolder::doEndRun_
void doEndRun_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:128
edm::Run
Definition: Run.h:45
LuminosityBlock.h
edm::LuminosityBlock::index
LuminosityBlockIndex index() const
Definition: LuminosityBlock.cc:28
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::global::impl::LuminosityBlockSummaryCacheHolder::doStreamEndLuminosityBlockSummary_
void doStreamEndLuminosityBlockSummary_(StreamID id, LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:221
edm::global::impl::StreamCacheHolder::operator=
StreamCacheHolder< T, C > & operator=(StreamCacheHolder< T, C > const &)=delete
edm::global::impl::EndRunSummaryProducer::operator=
EndRunSummaryProducer & operator=(EndRunSummaryProducer const &)=delete
edm::global::impl::LuminosityBlockCacheHolder::doBeginLuminosityBlock_
void doBeginLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
Definition: implementors.h:153
edm::global::impl::WatchProcessBlock::doEndProcessBlock_
void doEndProcessBlock_(ProcessBlock const &) final
Definition: implementorsMethods.h:39
edm::global::impl::EndLuminosityBlockProducer
Definition: implementors.h:348
edm::global::impl::RunCacheHolder::~RunCacheHolder
~RunCacheHolder() noexcept(false) override
Definition: implementors.h:121
edm::global::impl::RunSummaryCacheHolder::globalEndRunSummary
virtual void globalEndRunSummary(edm::Run const &, edm::EventSetup const &, C *) const =0
edm::propagate_const::get
constexpr element_type const * get() const
Definition: propagate_const.h:64
edm::global::impl::LuminosityBlockSummaryCacheHolder::mutex_
std::mutex mutex_
Definition: implementors.h:243
edm::global::impl::EndLuminosityBlockProducer::doEndLuminosityBlockProduce_
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementorsMethods.h:69
edm::global::impl::EndRunProducer::operator=
EndRunProducer & operator=(EndRunProducer const &)=delete
edm::global::impl::ExternalWork::hasAcquire
bool hasAcquire() const override
Definition: implementors.h:389
ProcessBlockIndex.h
edm::StreamID::value
unsigned int value() const
Definition: StreamID.h:43
edm::global::impl::BeginLuminosityBlockProducer::globalBeginLuminosityBlockProduce
virtual void globalBeginLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &) const =0
edm::global::impl::BeginRunProducer::BeginRunProducer
BeginRunProducer()=default
edm::global::impl::LuminosityBlockSummaryCacheHolder::~LuminosityBlockSummaryCacheHolder
~LuminosityBlockSummaryCacheHolder() noexcept(false) override
Definition: implementors.h:210
edm::global::impl::EndProcessBlockProducer::EndProcessBlockProducer
EndProcessBlockProducer()=default
edm::global::impl::EndProcessBlockProducer::~EndProcessBlockProducer
~EndProcessBlockProducer() noexcept(false) override
Definition: implementors.h:282
edm::global::impl::StreamCacheHolder
Definition: implementors.h:44
edm::global::impl::InputProcessBlockCacheHolder::caches_
std::vector< std::shared_ptr< C > > caches_
Definition: implementors.h:112
edm::global::impl::LuminosityBlockSummaryCacheHolder
Definition: implementors.h:205
edm::global::impl::EndLuminosityBlockProducer::~EndLuminosityBlockProducer
~EndLuminosityBlockProducer() noexcept(false) override
Definition: implementors.h:353
edm::global::impl::EndLuminosityBlockSummaryProducer::~EndLuminosityBlockSummaryProducer
~EndLuminosityBlockSummaryProducer() noexcept(false) override
Definition: implementors.h:366
edm::global::impl::RunCacheHolder::globalEndRun
virtual void globalEndRun(edm::Run const &, edm::EventSetup const &) const =0
edm::global::impl::Accumulator::hasAccumulator
bool hasAccumulator() const override
Definition: implementors.h:405
edm::global::impl::LuminosityBlockSummaryCacheHolder::operator=
LuminosityBlockSummaryCacheHolder< T, C > & operator=(LuminosityBlockSummaryCacheHolder< T, C > const &)=delete
edm::global::impl::BeginLuminosityBlockProducer::BeginLuminosityBlockProducer
BeginLuminosityBlockProducer()=default
edm::global::impl::LuminosityBlockSummaryCacheHolder::globalEndLuminosityBlockSummary
virtual void globalEndLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
edm::global::impl::EndLuminosityBlockSummaryProducer::doEndLuminosityBlockProduce_
void doEndLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementors.h:369
edm::global::impl::LuminosityBlockCacheHolder::globalEndLuminosityBlock
virtual void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
edm::global::impl::BeginRunProducer::doBeginRunProduce_
void doBeginRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementorsMethods.h:54
edm::global::impl::InputProcessBlockCacheHolder::~InputProcessBlockCacheHolder
~InputProcessBlockCacheHolder() override
Definition: implementors.h:96
edm::global::impl::StreamCacheHolder::doStreamEndLuminosityBlock_
void doStreamEndLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
Definition: implementors.h:71
edm::global::impl::StreamCacheHolder::StreamCacheHolder
StreamCacheHolder()=default
edm::WaitingTaskWithArenaHolder
Definition: WaitingTaskWithArenaHolder.h:34
edm::global::impl::RunSummaryCacheHolder::operator=
RunSummaryCacheHolder< T, C > & operator=(RunSummaryCacheHolder< T, C > const &)=delete
edm::propagate_const
Definition: propagate_const.h:32
edm::global::impl::StreamCacheHolder::doStreamBeginRun_
void doStreamBeginRun_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:66
edm::global::impl::StreamCacheHolder::streamBeginLuminosityBlock
virtual void streamBeginLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
Definition: implementors.h:77
edm::LuminosityBlockIndex
Definition: LuminosityBlockIndex.h:33
edm::global::impl::LuminosityBlockCacheHolder::luminosityBlockCache
C const * luminosityBlockCache(edm::LuminosityBlockIndex iID) const
Definition: implementors.h:150
edm::global::impl::WatchProcessBlock::beginProcessBlock
virtual void beginProcessBlock(ProcessBlock const &) const
Definition: implementors.h:258
edm::global::impl::EndLuminosityBlockProducer::operator=
EndLuminosityBlockProducer & operator=(EndLuminosityBlockProducer const &)=delete
edm::global::impl::WatchProcessBlock::operator=
WatchProcessBlock & operator=(WatchProcessBlock const &)=delete
edm::global::impl::EndLuminosityBlockProducer::globalEndLuminosityBlockProduce
virtual void globalEndLuminosityBlockProduce(edm::LuminosityBlock &, edm::EventSetup const &) const =0
edm::global::impl::EndRunProducer::EndRunProducer
EndRunProducer()=default
edm::global::impl::ExternalWork::~ExternalWork
~ExternalWork() noexcept(false) override
Definition: implementors.h:386
edm::global::impl::EndRunSummaryProducer::~EndRunSummaryProducer
~EndRunSummaryProducer() noexcept(false) override
Definition: implementors.h:324
edm::global::impl::EndProcessBlockProducer::operator=
EndProcessBlockProducer & operator=(EndProcessBlockProducer const &)=delete
edm::global::impl::WatchProcessBlock::endProcessBlock
virtual void endProcessBlock(ProcessBlock const &) const
Definition: implementors.h:259
edm::global::impl::EndRunProducer::~EndRunProducer
~EndRunProducer() noexcept(false) override
Definition: implementors.h:310
edm::global::impl::LuminosityBlockSummaryCacheHolder::doBeginLuminosityBlockSummary_
void doBeginLuminosityBlockSummary_(edm::LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:217
edm::global::impl::RunSummaryCacheHolder::doEndRunSummary_
void doEndRunSummary_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:189
edm::global::impl::EndProcessBlockProducer::doEndProcessBlockProduce_
void doEndProcessBlockProduce_(ProcessBlock &) final
Definition: implementorsMethods.h:49
edm::global::impl::RunSummaryCacheHolder::globalBeginRunSummary
virtual std::shared_ptr< C > globalBeginRunSummary(edm::Run const &, edm::EventSetup const &) const =0
edm::global::impl::StreamCacheHolder::~StreamCacheHolder
~StreamCacheHolder() override
Definition: implementors.h:49
edm::global::impl::BeginRunProducer
Definition: implementors.h:291
edm::global::impl::LuminosityBlockSummaryCacheHolder::caches_
std::unique_ptr< std::shared_ptr< C >[]> caches_
Definition: implementors.h:242
edm::global::impl::StreamCacheHolder::beginStream
virtual std::unique_ptr< C > beginStream(edm::StreamID) const =0
edm::global::impl::EndLuminosityBlockSummaryProducer::maybeClearCache
void maybeClearCache(LuminosityBlock const &) final
Definition: implementors.h:377
edm::global::impl::BeginLuminosityBlockProducer
Definition: implementors.h:335
edm::global::impl::Accumulator::accumulate
virtual void accumulate(StreamID streamID, Event const &ev, EventSetup const &es) const =0
edm::global::impl::RunSummaryCacheHolder::streamEndRunSummary
virtual void streamEndRunSummary(StreamID, edm::Run const &, edm::EventSetup const &, C *) const =0
edm::global::impl::ExternalWork
Definition: implementors.h:381
RunIndex.h
edm::global::impl::BeginRunProducer::~BeginRunProducer
~BeginRunProducer() noexcept(false) override
Definition: implementors.h:296
edm::global::impl::EndProcessBlockProducer::endProcessBlockProduce
virtual void endProcessBlockProduce(edm::ProcessBlock &) const =0
edm::global::impl::RunCacheHolder::operator=
RunCacheHolder< T, C > & operator=(RunCacheHolder< T, C > const &)=delete
edm::global::impl::RunCacheHolder::doBeginRun_
void doBeginRun_(Run const &rp, EventSetup const &c) final
Definition: implementors.h:127
edm::global::impl::RunCacheHolder::runCache
C const * runCache(edm::RunIndex iID) const
Definition: implementors.h:124
edm::global::impl::BeginRunProducer::operator=
BeginRunProducer & operator=(BeginRunProducer const &)=delete
edm::global::impl::LuminosityBlockSummaryCacheHolder::globalBeginLuminosityBlockSummary
virtual std::shared_ptr< C > globalBeginLuminosityBlockSummary(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
edm::global::impl::EndRunSummaryProducer::EndRunSummaryProducer
EndRunSummaryProducer()=default
edm::global::impl::EndRunProducer::globalEndRunProduce
virtual void globalEndRunProduce(edm::Run &, edm::EventSetup const &) const =0
edm::global::impl::RunSummaryCacheHolder::doBeginRunSummary_
void doBeginRunSummary_(edm::Run const &rp, EventSetup const &c) final
Definition: implementors.h:181
edm::global::impl::StreamCacheHolder::streamBeginRun
virtual void streamBeginRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
Definition: implementors.h:76
edm::global::impl::LuminosityBlockCacheHolder::~LuminosityBlockCacheHolder
~LuminosityBlockCacheHolder() noexcept(false) override
Definition: implementors.h:145
edm::get
T const & get(Event const &event, InputTag const &tag) noexcept(false)
Definition: Event.h:675
edm::global::impl::StreamCacheHolder::doBeginStream_
void doBeginStream_(StreamID id) final
Definition: implementors.h:60
edm::global::impl::RunSummaryCacheHolder::mutex_
std::mutex mutex_
Definition: implementors.h:198
edm::global::impl::WatchProcessBlock::WatchProcessBlock
WatchProcessBlock()=default
mutex
static std::mutex mutex
Definition: Proxy.cc:8
edm::global::impl::RunCacheHolder::globalBeginRun
virtual std::shared_ptr< C > globalBeginRun(edm::Run const &, edm::EventSetup const &) const =0
edm::global::impl::EmptyType
Definition: implementors.h:41
edm::global::impl::RunSummaryCacheHolder::~RunSummaryCacheHolder
~RunSummaryCacheHolder() noexcept(false) override
Definition: implementors.h:177
edm::global::impl::EndRunSummaryProducer::doEndRunProduce_
void doEndRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementors.h:327
edm::global::impl::EndLuminosityBlockSummaryProducer
Definition: implementors.h:202
edm::global::impl::BeginLuminosityBlockProducer::operator=
BeginLuminosityBlockProducer & operator=(BeginLuminosityBlockProducer const &)=delete
edm::global::impl::ExternalWork::operator=
ExternalWork & operator=(ExternalWork const &)=delete
edm::EventSetup
Definition: EventSetup.h:58
edm::global::impl::Accumulator::produce
void produce(StreamID streamID, Event &ev, EventSetup const &es) const final
Definition: implementors.h:407
edm::global::impl::BeginProcessBlockProducer::beginProcessBlockProduce
virtual void beginProcessBlockProduce(edm::ProcessBlock &) const =0
edm::global::impl::EndRunProducer
Definition: implementors.h:305
edm::global::impl::StreamCacheHolder::preallocStreams
void preallocStreams(unsigned int iNStreams) final
Definition: implementors.h:59
edm::global::impl::RunCacheHolder
Definition: implementors.h:116
edm::global::impl::Accumulator::~Accumulator
~Accumulator() noexcept(false) override
Definition: implementors.h:402
edm::global::impl::EndLuminosityBlockSummaryProducer::operator=
EndLuminosityBlockSummaryProducer & operator=(EndLuminosityBlockSummaryProducer const &)=delete
edm::global::impl::LuminosityBlockSummaryCacheHolder::maybeClearCache
virtual void maybeClearCache(LuminosityBlock const &lb)
Definition: implementors.h:239
edm::global::impl::WatchProcessBlock::doBeginProcessBlock_
void doBeginProcessBlock_(ProcessBlock const &) final
Definition: implementorsMethods.h:34
edm::global::impl::LuminosityBlockCacheHolder::LuminosityBlockCacheHolder
LuminosityBlockCacheHolder()=default
edm::global::impl::InputProcessBlockCacheHolder::operator=
InputProcessBlockCacheHolder & operator=(InputProcessBlockCacheHolder const &)=delete
edm::global::impl::LuminosityBlockSummaryCacheHolder::streamEndLuminosityBlockSummary
virtual void streamEndLuminosityBlockSummary(StreamID, edm::LuminosityBlock const &, edm::EventSetup const &, C *) const =0
edm::global::impl::RunCacheHolder::cache_
edm::propagate_const< std::shared_ptr< C > > cache_
Definition: implementors.h:136
impl
Definition: trackAlgoPriorityOrder.h:18
edm::global::impl::InputProcessBlockCacheHolder
Definition: implementors.h:91
edm::global::impl::LuminosityBlockSummaryCacheHolder::LuminosityBlockSummaryCacheHolder
LuminosityBlockSummaryCacheHolder()=default
gen::C
C
Definition: PomwigHadronizer.cc:78
Frameworkfwd.h
T
long double T
Definition: Basic3DVectorLD.h:48
edm::global::impl::EndProcessBlockProducer
Definition: implementors.h:277
edm::global::impl::EndRunProducer::doEndRunProduce_
void doEndRunProduce_(Run &rp, EventSetup const &c) final
Definition: implementorsMethods.h:59
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
edm::global::impl::StreamCacheHolder::doStreamBeginLuminosityBlock_
void doStreamBeginLuminosityBlock_(StreamID id, LuminosityBlock const &lbp, EventSetup const &c) final
Definition: implementors.h:68
edm::global::impl::Accumulator::Accumulator
Accumulator()=default
edm::global::impl::ExternalWork::doAcquire_
void doAcquire_(StreamID, Event const &, edm::EventSetup const &, WaitingTaskWithArenaHolder &) final
Definition: implementorsMethods.h:74
edm::global::impl::LuminosityBlockCacheHolder::doEndLuminosityBlock_
void doEndLuminosityBlock_(LuminosityBlock const &lp, EventSetup const &c) final
Definition: implementors.h:156
edm::global::impl::StreamCacheHolder::streamCache
C * streamCache(edm::StreamID iID) const
Definition: implementors.h:56
edm::global::impl::StreamCacheHolder::doStreamEndRun_
void doStreamEndRun_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:67
edm::global::impl::LuminosityBlockSummaryCacheHolder::preallocLumisSummary
void preallocLumisSummary(unsigned int iNLumis) final
Definition: implementors.h:213
edm::RunIndex
Definition: RunIndex.h:32
edm::global::impl::LuminosityBlockCacheHolder
Definition: implementors.h:140
edm::global::impl::LuminosityBlockCacheHolder::operator=
LuminosityBlockCacheHolder< T, C > & operator=(LuminosityBlockCacheHolder< T, C > const &)=delete
LuminosityBlockIndex.h
S
Definition: CSCDBL1TPParametersExtended.h:16
edm::global::impl::WatchProcessBlock::~WatchProcessBlock
~WatchProcessBlock() noexcept(false) override
Definition: implementors.h:252
edm::global::impl::InputProcessBlockCacheHolder::InputProcessBlockCacheHolder
InputProcessBlockCacheHolder()=default
edm::global::impl::BeginProcessBlockProducer
Definition: implementors.h:263
edm::global::impl::BeginProcessBlockProducer::doBeginProcessBlockProduce_
void doBeginProcessBlockProduce_(ProcessBlock &) final
Definition: implementorsMethods.h:44
edm::global::impl::BeginLuminosityBlockProducer::~BeginLuminosityBlockProducer
~BeginLuminosityBlockProducer() noexcept(false) override
Definition: implementors.h:340
edm::global::impl::LuminosityBlockSummaryCacheHolder::doEndLuminosityBlockSummary_
void doEndLuminosityBlockSummary_(LuminosityBlock const &lb, EventSetup const &c) final
Definition: implementors.h:225
edm::global::impl::RunSummaryCacheHolder
Definition: implementors.h:172
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
edm::global::impl::BeginProcessBlockProducer::BeginProcessBlockProducer
BeginProcessBlockProducer()=default
edm::global::impl::StreamCacheHolder::streamEndRun
virtual void streamEndRun(edm::StreamID, edm::Run const &, edm::EventSetup const &) const
Definition: implementors.h:83
edm::global::impl::BeginProcessBlockProducer::~BeginProcessBlockProducer
~BeginProcessBlockProducer() noexcept(false) override
Definition: implementors.h:268
edm::Event
Definition: Event.h:73
edm::global::impl::StreamCacheHolder::doEndStream_
void doEndStream_(StreamID id) final
Definition: implementors.h:61
edm::global::impl::RunCacheHolder::RunCacheHolder
RunCacheHolder()=default
edm::global::impl::LuminosityBlockCacheHolder::globalBeginLuminosityBlock
virtual std::shared_ptr< C > globalBeginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) const =0
StreamID.h
edm::global::impl::InputProcessBlockCacheHolder::doAccessInputProcessBlock_
void doAccessInputProcessBlock_(ProcessBlock const &pb) final
Definition: implementors.h:105
edm::global::impl::StreamCacheHolder::streamEndLuminosityBlock
virtual void streamEndLuminosityBlock(edm::StreamID, edm::LuminosityBlock const &, edm::EventSetup const &) const
Definition: implementors.h:80
edm::global::impl::EndRunSummaryProducer::globalEndRunProduce
virtual void globalEndRunProduce(edm::Run &, edm::EventSetup const &, C const *) const =0
edm::global::impl::EndLuminosityBlockProducer::EndLuminosityBlockProducer
EndLuminosityBlockProducer()=default
edm::ProcessBlock
Definition: ProcessBlock.h:36
edm::global::impl::ExternalWork::ExternalWork
ExternalWork()=default
edm::global::impl::Accumulator
Definition: implementors.h:397
edm::global::impl::Accumulator::operator=
Accumulator & operator=(Accumulator const &)=delete
edm::global::impl::BeginLuminosityBlockProducer::doBeginLuminosityBlockProduce_
void doBeginLuminosityBlockProduce_(LuminosityBlock &lb, EventSetup const &c) final
Definition: implementorsMethods.h:64
edm::global::impl::RunSummaryCacheHolder::doStreamEndRunSummary_
void doStreamEndRunSummary_(StreamID id, Run const &rp, EventSetup const &c) final
Definition: implementors.h:184