Loki::LockedStorage< T > Class Template Reference
[Storage policies]

#include <SmartPtr.h>

List of all members.

Public Types

typedef T * InitPointerType
 the type of the pointee_ object
typedef Locker< T > PointerType
 type used to declare OwnershipPolicy type.
typedef T & ReferenceType
 type returned by operator->

Public Member Functions

 LockedStorage ()
 type returned by operator*


Detailed Description

template<class T>
class Loki::LockedStorage< T >

Implementation of the StoragePolicy used by SmartPtr.

Each call to operator-> locks the object for the duration of a call to a member function of T.

How It Works
LockedStorage has a helper class called Locker, which acts as a smart pointer with limited abilities. LockedStorage::operator-> returns an unnamed temporary of type Locker<T> that exists for the duration of the call to a member function of T. The unnamed temporary locks the object when it is constructed by operator-> and unlocks the object when it is destructed.
Note:
This storage policy requires class T to have member functions Lock and Unlock. If your class does not have Lock or Unlock functions, you may either make a child class which does, or make a policy class similar to LockedStorage which calls other functions to lock the object.

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

Generated on Thu Jan 29 18:51:45 2009 for Loki by  doxygen 1.5.8