sigx++ 2.0.1
|
Makes T_type lockable. More...
#include <lockable.h>
Public Types | |
typedef lockable_base< T_mutex > | parent_type |
typedef T_type | acquired_type |
typedef volatile_trait < acquired_type >::add | volatile_type |
typedef std::tr1::add_reference < typename volatile_trait < acquired_type >::remove > ::type | reference_type |
typedef std::tr1::add_reference < volatile_type >::type | volatile_reference_type |
typedef std::tr1::add_reference < typename const_trait < reference_type >::add > ::type | const_reference_type |
typedef std::tr1::add_reference < typename const_trait < volatile_type >::add >::type | cv_reference_type |
typedef std::tr1::add_reference < typename std::tr1::add_const < acquired_type >::type > ::type | toplevel_const_reference_type |
Public Member Functions | |
safe_lockable () | |
Default constructor. | |
safe_lockable (toplevel_const_reference_type _a_value) | |
Constructs a lockable initializing T_type with _a_value. | |
Protected Member Functions | |
volatile_reference_type | access_volatile () throw () |
reference_type | access_nonvolatile () throw () |
cv_reference_type | access_volatile () const throw () |
const_reference_type | access_nonvolatile () const throw () |
Friends | |
class | lock_acquirer |
Makes T_type lockable.
The "safe" in safe_lockable means that access to the mutex and the locked type is denied, they are only accessible through a lock_acquirer.
The following template arguments are used:
typedef lockable<int, boost::mutex> mutex_lockable_int;
typedef T_type sigx::safe_lockable< T_type, T_mutex >::acquired_type |
typedef std::tr1::add_reference<typename const_trait<reference_type>::add>::type sigx::safe_lockable< T_type, T_mutex >::const_reference_type |
typedef std::tr1::add_reference<typename const_trait<volatile_type>::add>::type sigx::safe_lockable< T_type, T_mutex >::cv_reference_type |
typedef lockable_base<T_mutex> sigx::safe_lockable< T_type, T_mutex >::parent_type |
Reimplemented in sigx::rw_lockable< T_type >, sigx::lockable< T_type, T_mutex >, sigx::lockable< Glib::Thread *, Glib::Mutex >, sigx::lockable< T_type, Glib::StaticMutex >, sigx::lockable< T_type, Glib::RecMutex >, sigx::lockable< context_container_type, Glib::Mutex >, sigx::lockable< T_type, Glib::Mutex >, sigx::lockable< T_type, Glib::RWLock >, and sigx::lockable< T_type, Glib::StaticRecMutex >.
typedef std::tr1::add_reference<typename volatile_trait<acquired_type>::remove>::type sigx::safe_lockable< T_type, T_mutex >::reference_type |
typedef std::tr1::add_reference<typename std::tr1::add_const<acquired_type>::type>::type sigx::safe_lockable< T_type, T_mutex >::toplevel_const_reference_type |
Reimplemented in sigx::lockable< T_type, T_mutex >, sigx::lockable< Glib::Thread *, Glib::Mutex >, sigx::lockable< T_type, Glib::StaticMutex >, sigx::lockable< T_type, Glib::RecMutex >, sigx::lockable< context_container_type, Glib::Mutex >, sigx::lockable< T_type, Glib::Mutex >, sigx::lockable< T_type, Glib::RWLock >, and sigx::lockable< T_type, Glib::StaticRecMutex >.
typedef std::tr1::add_reference<volatile_type>::type sigx::safe_lockable< T_type, T_mutex >::volatile_reference_type |
typedef volatile_trait<acquired_type>::add sigx::safe_lockable< T_type, T_mutex >::volatile_type |
sigx::safe_lockable< T_type, T_mutex >::safe_lockable | ( | ) | [inline] |
Default constructor.
T_type is initialized with its default ctor or its default value
sigx::safe_lockable< T_type, T_mutex >::safe_lockable | ( | toplevel_const_reference_type | _a_value | ) | [inline] |
Constructs a lockable initializing T_type with _a_value.
reference_type sigx::safe_lockable< T_type, T_mutex >::access_nonvolatile | ( | ) | throw () [inline, protected] |
Referenced by sigx::auto_dispatchable::auto_dispatchable(), and sigx::glib_threadable::~glib_threadable().
const_reference_type sigx::safe_lockable< T_type, T_mutex >::access_nonvolatile | ( | ) | const throw () [inline, protected] |
cv_reference_type sigx::safe_lockable< T_type, T_mutex >::access_volatile | ( | ) | const throw () [inline, protected] |
volatile_reference_type sigx::safe_lockable< T_type, T_mutex >::access_volatile | ( | ) | throw () [inline, protected] |
friend class lock_acquirer [friend] |