libmoost
moost::guarded_ptr< T >::upgradable_access::upgrade Class Reference

Objects of this class represent an upgrade of an upgradable lock. More...

#include <guarded_ptr.hpp>

Collaboration diagram for moost::guarded_ptr< T >::upgradable_access::upgrade:

List of all members.

Public Member Functions

 upgrade (upgradable_access &parent)
reference operator* ()
const_reference operator* () const
pointer operator-> ()
const_pointer operator-> () const

Private Attributes

upgradable_accessm_parent

Detailed Description

template<typename T>
class moost::guarded_ptr< T >::upgradable_access::upgrade

Objects of this class represent an upgrade of an upgradable lock.

upgrade objects can only be constructed from upgradable_access objects. The lock held by the upgradable_access object is promoted to an exclusive lock upon construction of the first upgrade object. The exclusive lock is never downgraded to a shared lock again.

The upgrade object must never outlive the underlying upgradable_access object.

Definition at line 259 of file guarded_ptr.hpp.


Constructor & Destructor Documentation

template<typename T>
moost::guarded_ptr< T >::upgradable_access::upgrade::upgrade ( upgradable_access parent) [inline]

Definition at line 262 of file guarded_ptr.hpp.


Member Function Documentation

template<typename T>
reference moost::guarded_ptr< T >::upgradable_access::upgrade::operator* ( ) [inline]

Definition at line 269 of file guarded_ptr.hpp.

template<typename T>
const_reference moost::guarded_ptr< T >::upgradable_access::upgrade::operator* ( ) const [inline]

Definition at line 273 of file guarded_ptr.hpp.

template<typename T>
pointer moost::guarded_ptr< T >::upgradable_access::upgrade::operator-> ( ) [inline]

Definition at line 277 of file guarded_ptr.hpp.

template<typename T>
const_pointer moost::guarded_ptr< T >::upgradable_access::upgrade::operator-> ( ) const [inline]

Definition at line 281 of file guarded_ptr.hpp.


Member Data Documentation

Definition at line 287 of file guarded_ptr.hpp.


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