opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
osc::SynchronizedValue< T, Mutex, MutexGuard > Class Template Referencefinal

#include <synchronized_value.h>

Public Types

using value_type = T
 
using mutex_type = Mutex
 
using mutex_guard_type = MutexGuard
 

Public Member Functions

 SynchronizedValue ()=default
 
template<typename... Args>
requires std::constructible_from<value_type, Args&&...>
 SynchronizedValue (Args &&... args)
 
 SynchronizedValue (const SynchronizedValue &other)
 
 SynchronizedValue (SynchronizedValue &&tmp) noexcept
 
SynchronizedValueoperator= (const SynchronizedValue &other)
 
SynchronizedValueoperator= (SynchronizedValue &&tmp) noexcept
 
 ~SynchronizedValue () noexcept=default
 
value_type value () &&
 
template<typename TGuard = MutexGuard>
SynchronizedValueGuard< value_type, mutex_type, TGuardlock ()
 
template<typename TGuard = MutexGuard>
SynchronizedValueGuard< const value_type, mutex_type, TGuardlock () const
 
template<typename U , typename Getter , typename TGuard = MutexGuard>
requires std::is_same_v<decltype(f(std::declval<value_type>())), const U&>
SynchronizedValueGuard< const U, mutex_type, TGuardlock_child (Getter f) const
 

Member Typedef Documentation

◆ mutex_guard_type

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
using osc::SynchronizedValue< T, Mutex, MutexGuard >::mutex_guard_type = MutexGuard

◆ mutex_type

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
using osc::SynchronizedValue< T, Mutex, MutexGuard >::mutex_type = Mutex

◆ value_type

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
using osc::SynchronizedValue< T, Mutex, MutexGuard >::value_type = T

Constructor & Destructor Documentation

◆ SynchronizedValue() [1/4]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
osc::SynchronizedValue< T, Mutex, MutexGuard >::SynchronizedValue ( )
default

◆ SynchronizedValue() [2/4]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
template<typename... Args>
requires std::constructible_from<value_type, Args&&...>
osc::SynchronizedValue< T, Mutex, MutexGuard >::SynchronizedValue ( Args &&...  args)
inlineexplicit

◆ SynchronizedValue() [3/4]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
osc::SynchronizedValue< T, Mutex, MutexGuard >::SynchronizedValue ( const SynchronizedValue< T, Mutex, MutexGuard > &  other)
inline

◆ SynchronizedValue() [4/4]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
osc::SynchronizedValue< T, Mutex, MutexGuard >::SynchronizedValue ( SynchronizedValue< T, Mutex, MutexGuard > &&  tmp)
inlinenoexcept

◆ ~SynchronizedValue()

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
osc::SynchronizedValue< T, Mutex, MutexGuard >::~SynchronizedValue ( )
defaultnoexcept

Member Function Documentation

◆ lock() [1/2]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
template<typename TGuard = MutexGuard>
SynchronizedValueGuard< value_type, mutex_type, TGuard > osc::SynchronizedValue< T, Mutex, MutexGuard >::lock ( )
inline

◆ lock() [2/2]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
template<typename TGuard = MutexGuard>
SynchronizedValueGuard< const value_type, mutex_type, TGuard > osc::SynchronizedValue< T, Mutex, MutexGuard >::lock ( ) const
inline

◆ lock_child()

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
template<typename U , typename Getter , typename TGuard = MutexGuard>
requires std::is_same_v<decltype(f(std::declval<value_type>())), const U&>
SynchronizedValueGuard< const U, mutex_type, TGuard > osc::SynchronizedValue< T, Mutex, MutexGuard >::lock_child ( Getter  f) const
inline

◆ operator=() [1/2]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
SynchronizedValue & osc::SynchronizedValue< T, Mutex, MutexGuard >::operator= ( const SynchronizedValue< T, Mutex, MutexGuard > &  other)
inline

◆ operator=() [2/2]

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
SynchronizedValue & osc::SynchronizedValue< T, Mutex, MutexGuard >::operator= ( SynchronizedValue< T, Mutex, MutexGuard > &&  tmp)
inlinenoexcept

◆ value()

template<typename T , typename Mutex = std::mutex, typename MutexGuard = std::lock_guard<Mutex>>
value_type osc::SynchronizedValue< T, Mutex, MutexGuard >::value ( ) &&
inline

The documentation for this class was generated from the following file: