CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CacheContexts.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_stream_CacheContexts_h
2 #define FWCore_Framework_stream_CacheContexts_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : CacheContexts
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 02 Aug 2013 00:17:38 GMT
19 //
20 
21 // system include files
22 
23 // user include files
25 
26 // forward declarations
27 namespace edm {
28  namespace stream {
29  namespace impl {
30  struct Last {};
31 
32  template<typename T, typename... U>
33  struct AbilityToCache : public AbilityToCache<U...> {};
34 
35  template<typename G, typename... U>
36  struct AbilityToCache<GlobalCache<G>, U...> : public AbilityToCache<U...> {
37  typedef G GlobalCache;
38  };
39 
40  template<typename R, typename... U>
41  struct AbilityToCache<RunCache<R>, U...> : public AbilityToCache<U...> {
42  typedef R RunCache;
43  };
44 
45  template<typename L, typename... U>
46  struct AbilityToCache<LuminosityBlockCache<L>, U...> : public AbilityToCache<U...> {
48  };
49 
50  template<typename R, typename... U>
51  struct AbilityToCache<RunSummaryCache<R>, U...> : public AbilityToCache<U...> {
52  typedef R RunSummaryCache;
53  };
54 
55  template<typename L, typename... U>
58  };
59 
60  template<>
61  struct AbilityToCache<Last> {
62  typedef void GlobalCache ;
63  typedef void RunCache ;
64  typedef void LuminosityBlockCache ;
65  typedef void RunSummaryCache ;
67  };
68 
69  }
70  template <typename... T>
71  struct CacheContexts : public impl::AbilityToCache<T...,impl::Last> {
72  };
73  }
74 }
75 
76 
77 #endif
long double T