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

Objects of this class represent an upgradable lock of the guarded_ptr's mutex. More...

#include <guarded_ptr.hpp>

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

List of all members.

Classes

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

Public Member Functions

 upgradable_access (guarded_ptr &guard)
 ~upgradable_access ()
const_reference operator* () const
const_pointer operator-> () const

Private Attributes

guarded_ptrm_gptr
bool m_upgraded

Detailed Description

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

Objects of this class represent an upgradable lock of the guarded_ptr's mutex.

upgradable_access objects can only be constructed from guarded_ptr objects. They yield const-pointers to the object referenced by the guarded_ptr. An upgrade object can be constructed from the upgradable_access object, which leads to upgrading the upgradable lock to an exclusive lock. The upgrade object can deliver a non-const pointer to the referenced object.

The upgradable_access object must never outlive the underlying guarded_ptr object.

Definition at line 219 of file guarded_ptr.hpp.


Constructor & Destructor Documentation

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

Definition at line 222 of file guarded_ptr.hpp.

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

Definition at line 228 of file guarded_ptr.hpp.


Member Function Documentation

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

Definition at line 240 of file guarded_ptr.hpp.

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

Definition at line 244 of file guarded_ptr.hpp.


Member Data Documentation

template<typename T>
guarded_ptr& moost::guarded_ptr< T >::upgradable_access::m_gptr [private]

Definition at line 291 of file guarded_ptr.hpp.

template<typename T>
bool moost::guarded_ptr< T >::upgradable_access::m_upgraded [private]

Definition at line 292 of file guarded_ptr.hpp.


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