Loki  0.1.7
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Modules
Loki::LockedStorage< T > Class Template Reference

#include <SmartPtr.h>

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: