CMS 3D CMS Logo

dummy_helpers.h
Go to the documentation of this file.
1 #ifndef Subsystem_Package_dummy_helpers_h
2 #define Subsystem_Package_dummy_helpers_h
3 // -*- C++ -*-
4 //
5 // Package: Subsystem/Package
6 // Class : dummy_helpers
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Sat, 03 Aug 2013 21:42:38 GMT
19 //
20 
21 // system include files
22 #include <memory>
23 #include <vector>
24 #include <mutex>
25 // user include files
26 
27 // forward declarations
28 
29 namespace edm {
30  namespace stream {
31  namespace impl {
32  struct dummy_ptr {
33  void* get() { return nullptr; }
34  void reset(void*) {}
35  void* release() { return nullptr; }
36  };
37 
38  struct dummy_vec {
39  void resize(size_t) {}
40  dummy_ptr operator[](unsigned int) { return dummy_ptr(); }
41  };
42 
43  struct dummy_mutex {
44  void lock() {}
45  void unlock() {}
46  };
47 
48  template <typename T>
50  typedef std::unique_ptr<T> type;
51  };
52  template <>
54  typedef dummy_ptr type;
55  };
56 
57  template <>
59  typedef dummy_ptr type;
60  };
61 
62  template <typename T>
64  typedef std::vector<std::shared_ptr<T>> type;
65  };
66  template <>
68  typedef dummy_vec type;
69  };
70  template <>
72  typedef dummy_vec type;
73  };
74  template <typename T>
75  struct choose_mutex {
76  using type = std::mutex;
77  };
78  template <>
79  struct choose_mutex<void> {
80  using type = dummy_mutex;
81  };
82  } // namespace impl
83  } // namespace stream
84 } // namespace edm
85 
86 #endif
edm::stream::impl::choose_shared_vec< void const >::type
dummy_vec type
Definition: dummy_helpers.h:72
edm::stream::impl::dummy_ptr::get
void * get()
Definition: dummy_helpers.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::stream::impl::choose_unique_ptr< void >::type
dummy_ptr type
Definition: dummy_helpers.h:54
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
edm::stream::impl::dummy_mutex::unlock
void unlock()
Definition: dummy_helpers.h:45
edm::stream::impl::choose_shared_vec::type
std::vector< std::shared_ptr< T > > type
Definition: dummy_helpers.h:64
watchdog.const
const
Definition: watchdog.py:83
edm::stream::impl::dummy_vec::resize
void resize(size_t)
Definition: dummy_helpers.h:39
edm::stream::impl::dummy_mutex::lock
void lock()
Definition: dummy_helpers.h:44
edm::stream::impl::choose_unique_ptr
Definition: dummy_helpers.h:49
edm::stream::impl::dummy_mutex
Definition: dummy_helpers.h:43
edm::stream::impl::dummy_ptr
Definition: dummy_helpers.h:32
edm::stream::impl::dummy_ptr::reset
void reset(void *)
Definition: dummy_helpers.h:34
mutex
static std::mutex mutex
Definition: Proxy.cc:8
edm::stream::impl::choose_unique_ptr< void const >::type
dummy_ptr type
Definition: dummy_helpers.h:59
edm::stream::impl::choose_unique_ptr::type
std::unique_ptr< T > type
Definition: dummy_helpers.h:50
edm::stream::impl::dummy_vec
Definition: dummy_helpers.h:38
edm::stream::impl::choose_shared_vec
Definition: dummy_helpers.h:63
impl
Definition: trackAlgoPriorityOrder.h:18
funct::void
TEMPL(T2) struct Divides void
Definition: Factorize.h:24
edm::stream::impl::choose_shared_vec< void >::type
dummy_vec type
Definition: dummy_helpers.h:68
edm::stream::impl::choose_mutex< typename T::RunSummaryCache >::type
std::mutex type
Definition: dummy_helpers.h:76
edm::stream::impl::dummy_vec::operator[]
dummy_ptr operator[](unsigned int)
Definition: dummy_helpers.h:40
edm::stream::impl::dummy_ptr::release
void * release()
Definition: dummy_helpers.h:35
edm::stream::impl::choose_mutex
Definition: dummy_helpers.h:75