CMS 3D CMS Logo

EDProducer.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_EDProducer_h
2 #define FWCore_Framework_stream_EDProducer_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : EDProducer
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu, 01 Aug 2013 21:41:42 GMT
19 //
20 
28 
29 namespace edm {
30 
31  class WaitingTaskWithArenaHolder;
32 
33  namespace stream {
34 
35  template <typename... T>
36  class EDProducer : public AbilityToImplementor<T>::Type...,
37  public std::conditional<CheckAbility<edm::module::Abilities::kAccumulator, T...>::kHasIt,
38  impl::EmptyType,
39  EDProducerBase>::type {
40  public:
41  using CacheTypes = CacheContexts<T...>;
42 
43  using GlobalCache = typename CacheTypes::GlobalCache;
44  using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache;
45  using RunCache = typename CacheTypes::RunCache;
46  using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache;
49  using RunSummaryCache = typename CacheTypes::RunSummaryCache;
50  using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache;
51 
53 
54  EDProducer() = default;
55  EDProducer(const EDProducer&) = delete;
56  const EDProducer& operator=(const EDProducer&) = delete;
57 
60  }
63  }
64 
67 
70 
71  private:
72  void doAcquire_(Event const& ev, EventSetup const& es, WaitingTaskWithArenaHolder& holder) final {
73  doAcquireIfNeeded(this, ev, es, holder);
74  }
75  };
76 
77  } // namespace stream
78 } // namespace edm
79 
80 #endif
typename CacheTypes::InputProcessBlockCache InputProcessBlockCache
Definition: EDProducer.h:44
bool hasAbilityToProduceInBeginLumis() const final
Definition: EDProducer.h:68
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
void doAcquire_(Event const &ev, EventSetup const &es, WaitingTaskWithArenaHolder &holder) final
Definition: EDProducer.h:72
bool hasAbilityToProduceInEndRuns() const final
Definition: EDProducer.h:66
bool hasAbilityToProduceInBeginProcessBlocks() const final
Definition: EDProducer.h:58
typename CacheTypes::LuminosityBlockCache LuminosityBlockCache
Definition: EDProducer.h:46
bool hasAbilityToProduceInEndLumis() const final
Definition: EDProducer.h:69
typename CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
Definition: EDProducer.h:50
const EDProducer & operator=(const EDProducer &)=delete
typename CacheTypes::RunSummaryCache RunSummaryCache
Definition: EDProducer.h:49
HLT enums.
bool hasAbilityToProduceInBeginRuns() const final
Definition: EDProducer.h:65
void doAcquireIfNeeded(impl::ExternalWork *, Event const &, EventSetup const &, WaitingTaskWithArenaHolder &)
bool hasAbilityToProduceInEndProcessBlocks() const final
Definition: EDProducer.h:61
long double T