Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-07-19 01:43:37

0001 #ifndef FWCore_Framework_one_analyzerAbilityToImplementor_h
0002 #define FWCore_Framework_one_analyzerAbilityToImplementor_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Package
0006 // Class  :     analyzer::AbilityToImplementor
0007 //
0008 /**\class analyzer::AbilityToImplementor analyzerAbilityToImplementor.h "FWCore/Framework/interface/one/analyzerAbilityToImplementor.h"
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Thu, 01 Aug 2013 19:39:58 GMT
0019 //
0020 
0021 // system include files
0022 
0023 // user include files
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 // forward declarations
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     }  // namespace analyzer
0072   }    // namespace one
0073 }  // namespace edm
0074 
0075 #endif