File indexing completed on 2024-09-07 04:36:22
0001 #ifndef FWCore_Framework_one_producerAbilityToImplementor_h
0002 #define FWCore_Framework_one_producerAbilityToImplementor_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "FWCore/Framework/interface/moduleAbilities.h"
0025 #include "FWCore/Framework/interface/one/moduleAbilities.h"
0026 #include "FWCore/Framework/interface/one/implementors.h"
0027 #include "FWCore/Framework/interface/one/EDProducerBase.h"
0028
0029
0030
0031 namespace edm {
0032 namespace one {
0033 namespace producer {
0034 template <typename T>
0035 struct AbilityToImplementor;
0036
0037 template <>
0038 struct AbilityToImplementor<edm::one::SharedResources> {
0039 using Type = edm::one::impl::SharedResourcesUser<edm::one::EDProducerBase>;
0040 };
0041
0042 template <>
0043 struct AbilityToImplementor<edm::one::WatchRuns> {
0044 using Type = edm::one::impl::RunWatcher<edm::one::EDProducerBase>;
0045 };
0046
0047 template <>
0048 struct AbilityToImplementor<edm::one::WatchLuminosityBlocks> {
0049 using Type = edm::one::impl::LuminosityBlockWatcher<edm::one::EDProducerBase>;
0050 };
0051
0052 template <>
0053 struct AbilityToImplementor<edm::WatchProcessBlock> {
0054 using Type = edm::one::impl::WatchProcessBlock<edm::one::EDProducerBase>;
0055 };
0056
0057 template <>
0058 struct AbilityToImplementor<edm::BeginProcessBlockProducer> {
0059 using Type = edm::one::impl::BeginProcessBlockProducer<edm::one::EDProducerBase>;
0060 };
0061
0062 template <>
0063 struct AbilityToImplementor<edm::EndProcessBlockProducer> {
0064 using Type = edm::one::impl::EndProcessBlockProducer<edm::one::EDProducerBase>;
0065 };
0066
0067 template <>
0068 struct AbilityToImplementor<edm::BeginRunProducer> {
0069 using Type = edm::one::impl::BeginRunProducer<edm::one::EDProducerBase>;
0070 };
0071
0072 template <>
0073 struct AbilityToImplementor<edm::EndRunProducer> {
0074 using Type = edm::one::impl::EndRunProducer<edm::one::EDProducerBase>;
0075 };
0076
0077 template <>
0078 struct AbilityToImplementor<edm::BeginLuminosityBlockProducer> {
0079 using Type = edm::one::impl::BeginLuminosityBlockProducer<edm::one::EDProducerBase>;
0080 };
0081
0082 template <>
0083 struct AbilityToImplementor<edm::EndLuminosityBlockProducer> {
0084 using Type = edm::one::impl::EndLuminosityBlockProducer<edm::one::EDProducerBase>;
0085 };
0086
0087 template <>
0088 struct AbilityToImplementor<edm::Transformer> {
0089 using Type = edm::one::impl::Transformer<edm::one::EDProducerBase>;
0090 };
0091
0092 template <typename... Cs>
0093 struct AbilityToImplementor<edm::InputProcessBlockCache<Cs...>> {
0094 using Type = edm::one::impl::InputProcessBlockCacheHolder<edm::one::EDProducerBase, Cs...>;
0095 };
0096
0097 template <typename C>
0098 struct AbilityToImplementor<edm::RunCache<C>> {
0099 using Type = edm::one::impl::RunCacheHolder<edm::one::EDProducerBase, C>;
0100 };
0101
0102 template <typename C>
0103 struct AbilityToImplementor<edm::LuminosityBlockCache<C>> {
0104 using Type = edm::one::impl::LuminosityBlockCacheHolder<edm::one::EDProducerBase, C>;
0105 };
0106
0107 template <>
0108 struct AbilityToImplementor<edm::Accumulator> {
0109 using Type = edm::one::impl::Accumulator<edm::one::EDProducerBase>;
0110 };
0111
0112 }
0113 }
0114 }
0115
0116 #endif