File indexing completed on 2024-09-07 04:36:21
0001 #ifndef FWCore_Framework_global_analyzerAbilityToImplementor_h
0002 #define FWCore_Framework_global_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/global/implementors.h"
0026 #include "FWCore/Framework/interface/global/EDAnalyzerBase.h"
0027
0028
0029 namespace edm {
0030 namespace global {
0031 namespace analyzer {
0032 template <typename T>
0033 struct AbilityToImplementor;
0034
0035 template <typename C>
0036 struct AbilityToImplementor<edm::StreamCache<C>> {
0037 using Type = edm::global::impl::StreamCacheHolder<edm::global::EDAnalyzerBase, C>;
0038 };
0039
0040 template <typename... Cs>
0041 struct AbilityToImplementor<edm::InputProcessBlockCache<Cs...>> {
0042 using Type = edm::global::impl::InputProcessBlockCacheHolder<edm::global::EDAnalyzerBase, Cs...>;
0043 };
0044
0045 template <typename C>
0046 struct AbilityToImplementor<edm::RunCache<C>> {
0047 using Type = edm::global::impl::RunCacheHolder<edm::global::EDAnalyzerBase, C>;
0048 };
0049
0050 template <typename C>
0051 struct AbilityToImplementor<edm::RunSummaryCache<C>> {
0052 using Type = edm::global::impl::RunSummaryCacheHolder<edm::global::EDAnalyzerBase, C>;
0053 };
0054
0055 template <typename C>
0056 struct AbilityToImplementor<edm::LuminosityBlockCache<C>> {
0057 using Type = edm::global::impl::LuminosityBlockCacheHolder<edm::global::EDAnalyzerBase, C>;
0058 };
0059
0060 template <typename C>
0061 struct AbilityToImplementor<edm::LuminosityBlockSummaryCache<C>> {
0062 using Type = edm::global::impl::LuminosityBlockSummaryCacheHolder<edm::global::EDAnalyzerBase, C>;
0063 };
0064
0065 template <>
0066 struct AbilityToImplementor<edm::WatchProcessBlock> {
0067 using Type = edm::global::impl::WatchProcessBlock<edm::global::EDAnalyzerBase>;
0068 };
0069 }
0070 }
0071 }
0072
0073 #endif