File indexing completed on 2024-09-07 04:36:22
0001 #ifndef FWCore_Framework_one_analyzerAbilityToImplementor_h
0002 #define FWCore_Framework_one_analyzerAbilityToImplementor_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/EDAnalyzerBase.h"
0028
0029
0030
0031 namespace edm {
0032 namespace one {
0033 namespace analyzer {
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::EDAnalyzerBase>;
0040 };
0041
0042 template <>
0043 struct AbilityToImplementor<edm::one::WatchRuns> {
0044 using Type = edm::one::impl::RunWatcher<edm::one::EDAnalyzerBase>;
0045 };
0046
0047 template <>
0048 struct AbilityToImplementor<edm::one::WatchLuminosityBlocks> {
0049 using Type = edm::one::impl::LuminosityBlockWatcher<edm::one::EDAnalyzerBase>;
0050 };
0051
0052 template <typename... Cs>
0053 struct AbilityToImplementor<edm::InputProcessBlockCache<Cs...>> {
0054 using Type = edm::one::impl::InputProcessBlockCacheHolder<edm::one::EDAnalyzerBase, Cs...>;
0055 };
0056
0057 template <typename C>
0058 struct AbilityToImplementor<edm::RunCache<C>> {
0059 using Type = edm::one::impl::RunCacheHolder<edm::one::EDAnalyzerBase, C>;
0060 };
0061
0062 template <typename C>
0063 struct AbilityToImplementor<edm::LuminosityBlockCache<C>> {
0064 using Type = edm::one::impl::LuminosityBlockCacheHolder<edm::one::EDAnalyzerBase, C>;
0065 };
0066
0067 template <>
0068 struct AbilityToImplementor<edm::WatchProcessBlock> {
0069 using Type = edm::one::impl::WatchProcessBlock<edm::one::EDAnalyzerBase>;
0070 };
0071 }
0072 }
0073 }
0074
0075 #endif