ZThread::Singleton< T, InstantiationPolicy, LockType > Class Template Reference

#include <Singleton.h>

Inheritance diagram for ZThread::Singleton< T, InstantiationPolicy, LockType >:

ZThread::NonCopyable ZThread::ThreadQueue List of all members.

Static Public Member Functions

static T * instance ()

Detailed Description

template<class T, class InstantiationPolicy = LazyInstantiation, class LockType = FastMutex>
class ZThread::Singleton< T, InstantiationPolicy, LockType >

Author:
Eric Crahen <http://www.code-foo.com>
Date:
<2003-07-16T17:57:45-0400>
Version:
2.2.0
Based on the work of John Vlissidles in his book 'Pattern Hatching' an article by Douglas Schmidtt on double-checked locking and policy templates described by Andrei Alexandrescu.

This is a thread safe wrapper for creating Singleton classes. The synchronization method and instantiation methods can be changed easily by specifying different policy implementations as the templates parameters.

 // Most common Singleton
 Singletion<LonesomeType>

 // Singleton that uses static storage 
 Singletion<LonesomeType, StaticInstantiation>

 // Single-threaded singleton that uses static storage (Meyers-like)
 Singletion<LonesomeType, LocalStaticInstantiation, NotLocked>


Member Function Documentation

template<class T, class InstantiationPolicy, class LockType>
T * Singleton< T, InstantiationPolicy, LockType >::instance (  )  [static]

Provide access to the single instance through double-checked locking

Returns:
T* single instance


The documentation for this class was generated from the following file:
Generated on Wed Aug 30 03:27:48 2006 for SWG EMU by  doxygen 1.4.7