Singleton< T > Class Template Reference

Classe Singleton, permet de générer des classes utilisant le design pattern singleton par héritage
Usage:
Classe C : public Singleton<C>{ friend class Singleton<C>; };. More...

#include <Singleton.h>

Inheritance diagram for Singleton< T >:

Inheritance graph
[legend]
Collaboration diagram for Singleton< T >:

Collaboration graph
[legend]
List of all members.

Static Public Member Functions

static T * GetInstance ()
 Méthode statique de création du singleton, qui n'est initialisé que s'il vaut null (garantit une seule instance de la classe * héritière).
static void KillInstance ()
 Méthode statique de destruction du singleton.

Protected Member Functions

 Singleton ()
 Constructeur Singleton seulement accessible par la classe héritière via amitié.
 ~Singleton ()
 Destructeur Singleton seulement accessible par la classe héritière via amitié.

Static Private Attributes

static T * mSingleton
 Pointeur sur T unique.

Detailed Description

template<typename T>
class Singleton< T >

Classe Singleton, permet de générer des classes utilisant le design pattern singleton par héritage
Usage:
Classe C : public Singleton<C>{ friend class Singleton<C>; };.

Definition at line 40 of file Singleton.h.


Constructor & Destructor Documentation

template<typename T>
Singleton< T >::Singleton (  )  [inline, protected]

Constructeur Singleton seulement accessible par la classe héritière via amitié.

Returns:

Definition at line 46 of file Singleton.h.

00046 {}

template<typename T>
Singleton< T >::~Singleton (  )  [inline, protected]

Destructeur Singleton seulement accessible par la classe héritière via amitié.

Returns:

Definition at line 52 of file Singleton.h.

00052 {}


Member Function Documentation

template<typename T>
static T* Singleton< T >::GetInstance (  )  [inline, static]

Méthode statique de création du singleton, qui n'est initialisé que s'il vaut null (garantit une seule instance de la classe * héritière).

Returns:
Un pointeur sur la classe de type T

Definition at line 58 of file Singleton.h.

Referenced by ServeurJeu::ServeurJeu(), TraitementClient::TraitementClient(), TraitementComServeurJeu::TraitementComServeurJeu(), TraitementComServeurPrincipal::TraitementComServeurPrincipal(), and TraitementJoueur::TraitementJoueur().

00058                                 {
00059                 static Mutex m;
00060                 m.Lock();
00061                 if(mSingleton==NULL) mSingleton = new T;
00062                 m.Unlock();
00063                 return (static_cast<T*> (mSingleton));
00064         }

template<typename T>
static void Singleton< T >::KillInstance (  )  [inline, static]

Méthode statique de destruction du singleton.

Definition at line 69 of file Singleton.h.

Referenced by ServeurJeu::~ServeurJeu(), and ServeurPrincipal::~ServeurPrincipal().

00069                                   {
00070                 static Mutex m;
00071                 m.Lock();
00072                 if(mSingleton!=NULL){
00073                         delete mSingleton;
00074                         mSingleton = NULL;
00075                 }
00076                 m.Unlock();
00077         }


Member Data Documentation

template<typename T>
T * Singleton< T >::mSingleton [static, private]

Pointeur sur T unique.

Definition at line 82 of file Singleton.h.

Referenced by Singleton< BdD >::GetInstance(), and Singleton< BdD >::KillInstance().


The documentation for this class was generated from the following file:
Generated on Wed Jan 2 14:02:11 2008 for Pacman by  doxygen 1.5.1