opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
synchronized_value_guard.h
Go to the documentation of this file.
1#pragma once
2
3#include <mutex>
4
5namespace osc
6{
7 // accessor to a reference to the guarded value
8 template<
9 typename T,
10 typename Mutex = std::mutex,
11 typename MutexGuard = std::lock_guard<Mutex>
12 >
14 public:
15 using value_type = T;
19 using const_pointer = const value_type*;
22
24 mutex_guard_{mutex},
25 value_ptr_{&value_ref}
26 {}
27
28 reference operator*() & { return *value_ptr_; }
29 const_reference operator*() const & { return *value_ptr_; }
30 pointer operator->() { return value_ptr_; }
31 const_pointer operator->() const { return value_ptr_; }
32
33 private:
34 mutex_guard_type mutex_guard_;
35 pointer value_ptr_;
36 };
37}
Definition synchronized_value_guard.h:13
SynchronizedValueGuard(mutex_type &mutex, reference value_ref)
Definition synchronized_value_guard.h:23
value_type & reference
Definition synchronized_value_guard.h:16
Mutex mutex_type
Definition synchronized_value_guard.h:20
const value_type & const_reference
Definition synchronized_value_guard.h:17
reference operator*() &
Definition synchronized_value_guard.h:28
value_type * pointer
Definition synchronized_value_guard.h:18
pointer operator->()
Definition synchronized_value_guard.h:30
MutexGuard mutex_guard_type
Definition synchronized_value_guard.h:21
const_reference operator*() const &
Definition synchronized_value_guard.h:29
const_pointer operator->() const
Definition synchronized_value_guard.h:31
T value_type
Definition synchronized_value_guard.h:15
const value_type * const_pointer
Definition synchronized_value_guard.h:19
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56