#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/cxx/SynchronizedValue.h>
template<typename Value, typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
class Gaudi::cxx::SynchronizedValue< Value, Mutex, ReadLock, WriteLock >
Definition at line 29 of file SynchronizedValue.h.
◆ SynchronizedValue() [1/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
Definition at line 39 of file SynchronizedValue.h.
40 static_assert( std::is_default_constructible_v<Value> );
43 static_assert( std::is_copy_assignable_v<Value> );
44 auto lock = std::scoped_lock{ rhs.m_mtx,
m_mtx };
◆ SynchronizedValue() [2/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
Definition at line 57 of file SynchronizedValue.h.
58 static_assert( std::is_default_constructible_v<Value> );
61 static_assert( std::is_move_assignable_v<Value> );
62 auto lock = std::scoped_lock{ rhs.m_mtx,
m_mtx };
63 m_obj = std::move( rhs.m_obj );
◆ operator=() [1/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
Definition at line 48 of file SynchronizedValue.h.
49 static_assert( std::is_copy_assignable_v<Value> );
51 auto lock = std::scoped_lock{ rhs.m_mtx,
m_mtx };
◆ operator=() [2/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
Definition at line 66 of file SynchronizedValue.h.
67 static_assert( std::is_move_assignable_v<Value> );
69 auto lock = std::scoped_lock{ rhs.m_mtx,
m_mtx };
70 m_obj = std::move( rhs.m_obj );
◆ requires() [1/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
template<typename... Args, std::invocable< Value &, Args... > F>
◆ requires() [2/2]
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
template<typename... Args>
◆ std::invoke()
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
◆ args
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
◆ m_mtx
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
◆ m_obj
template<typename Value , typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
The documentation for this class was generated from the following file: