00001 00011 #ifndef __Singleton_H__ 00012 #define __Singleton_H__ 00013 00014 // Includes 00015 00016 // Forward declares 00017 00018 template<class TYPE> 00019 class Singleton 00020 { 00021 public: 00022 Singleton(); 00023 virtual ~Singleton(); 00024 00025 static void CreateInstance(); 00026 static void DestroyInstance(); 00027 static TYPE* GetInstance(); 00028 static bool IsInstanceCreated(); 00029 00030 private: 00031 static TYPE* staticInstancePointer_; 00032 }; 00033 00034 #include "Singleton.inl" 00035 00036 #endif /* __Singleton_H__ */