Singleton template class. More...
#include <Singleton.h>
Public Types | |
| typedef SingletonClass * | SingletonClassPtr | 
| typedef ::coil::Mutex | Mutex | 
Static Public Member Functions | |
| static SingletonClass & | instance () | 
| Create instance.   | |
Protected Member Functions | |
| Singleton () | |
| Constructor.   | |
| ~Singleton () | |
| Destructor.   | |
Static Protected Attributes | |
| static coil::Mutex | m_mutex | 
| Mutual exclusion object.   | |
| static SingletonClass * | m_instance | 
| SingletonClass object.   | |
Singleton template class.
This class template makes any classed into Singleton classes. Usage is as follows.
class A { // }; typedef coil::Singleton<A> A_;
In the any places, A& a(A_:instance()); // a has singular instance of A
Since the constructor of A is still public, however, user can create other instance of A as follows.
A* a = new A();
If you want to prohibit user from creating new instance, please inherit Singleton class (CRTP) and declare it as a friend class in the target class.
class A : public coil::Singleton<A> { public: private: A(){}
friend class coil::Singelton<A>; };
A* a = new A(); // compile error A& a(A::instance()); // This is the only method to get unique instance
| typedef ::coil::Mutex coil::Singleton< SingletonClass >::Mutex | 
| typedef SingletonClass* coil::Singleton< SingletonClass >::SingletonClassPtr | 
| coil::Singleton< SingletonClass >::Singleton | ( | ) |  [inline, protected] | 
        
Constructor.
Constructor
| coil::Singleton< SingletonClass >::~Singleton | ( | ) |  [inline, protected] | 
        
Destructor.
Destructor
| static SingletonClass& coil::Singleton< SingletonClass >::instance | ( | ) |  [inline, static] | 
        
Create instance.
Create instance.
Singleton< SingletonClass >::SingletonClassPtr coil::Singleton< SingletonClass >::m_instance [inline, static, protected] | 
        
SingletonClass object.
Referenced by coil::Singleton< GlobalFactory< AbstractClass, Identifier, Compare, Creator, Destructor > >::instance().
Singleton< SingletonClass >::Mutex coil::Singleton< SingletonClass >::m_mutex [inline, static, protected] | 
        
Mutual exclusion object.
Referenced by coil::Singleton< GlobalFactory< AbstractClass, Identifier, Compare, Creator, Destructor > >::instance().
 1.6.3