Loki::LockingPtr< SharedObject, LockingPolicy, ConstPolicy > Class Template Reference
#include <LockingPtr.h>
List of all members.
|
Public Member Functions |
| LockingPtr (volatile ConstOrNotType &object, LockingPolicy &mutex) |
| LockingPtr (Pair lockpair) |
| ~LockingPtr () |
| Destructor unlocks the mutex.
|
ConstOrNotType & | operator* () |
| Star-operator dereferences pointer.
|
ConstOrNotType * | operator-> () |
| Point-operator returns pointer to object.
|
Detailed Description
template<typename SharedObject, typename LockingPolicy = LOKI_DEFAULT_MUTEX, template< class > class ConstPolicy = LOKI_DEFAULT_CONSTNESS>
class Loki::LockingPtr< SharedObject, LockingPolicy, ConstPolicy >
Locks a volatile object and casts away volatility so that the object can be safely used in a single-threaded region of code. Original version of
LockingPtr had only one template - for the shared object, but not the mutex type. This version allows users to specify a the mutex type as a LockingPolicy class. The only requirements for a LockingPolicy class are to provide Lock and Unlock methods.
Constructor & Destructor Documentation
template<typename SharedObject , typename LockingPolicy = LOKI_DEFAULT_MUTEX, template< class > class ConstPolicy = LOKI_DEFAULT_CONSTNESS>
Loki::LockingPtr< SharedObject, LockingPolicy, ConstPolicy >::LockingPtr |
( |
volatile ConstOrNotType & |
object, |
|
|
LockingPolicy & |
mutex | |
|
) |
| | [inline] |
Constructor locks mutex associated with an object.
- Parameters:
-
| object | Reference to object. |
| mutex | Mutex used to control thread access to object. |
template<typename SharedObject , typename LockingPolicy = LOKI_DEFAULT_MUTEX, template< class > class ConstPolicy = LOKI_DEFAULT_CONSTNESS>
Constructor locks mutex associated with an object.
- Parameters:
-
| lockpair | a std::pair of pointers to the object and the mutex |
The documentation for this class was generated from the following file: