CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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
26 
27 // forward declarations
28 namespace edm {
29  namespace stream {
30  namespace impl {
31  struct Last {};
32 
33  template <typename T, typename... U>
34  struct AbilityToCache : public AbilityToCache<U...> {};
35 
36  template <typename G, typename... U>
37  struct AbilityToCache<GlobalCache<G>, U...> : public AbilityToCache<U...> {
38  using GlobalCache = G;
39  };
40 
41  template <typename... CacheTypes, typename... U>
42  struct AbilityToCache<InputProcessBlockCache<CacheTypes...>, U...> : public AbilityToCache<U...> {
44  };
45 
46  template <typename R, typename... U>
47  struct AbilityToCache<RunCache<R>, U...> : public AbilityToCache<U...> {
48  using RunCache = R;
49  };
50 
51  template <typename L, typename... U>
52  struct AbilityToCache<LuminosityBlockCache<L>, U...> : public AbilityToCache<U...> {
54  };
55 
56  template <typename R, typename... U>
57  struct AbilityToCache<RunSummaryCache<R>, U...> : public AbilityToCache<U...> {
58  using RunSummaryCache = R;
59  };
60 
61  template <typename L, typename... U>
64  };
65 
66  template <>
67  struct AbilityToCache<Last> {
68  using GlobalCache = void;
69  using InputProcessBlockCache = void;
70  using RunCache = void;
71  using LuminosityBlockCache = void;
72  using RunSummaryCache = void;
74  };
75 
76  } // namespace impl
77  template <typename... T>
78  struct CacheContexts : public impl::AbilityToCache<T..., impl::Last> {};
79  } // namespace stream
80 } // namespace edm
81 
82 #endif
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
long double T