summaryrefslogtreecommitdiff
path: root/source/modules/asura-utils/singleton.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-utils/singleton.hpp')
-rw-r--r--source/modules/asura-utils/singleton.hpp59
1 files changed, 0 insertions, 59 deletions
diff --git a/source/modules/asura-utils/singleton.hpp b/source/modules/asura-utils/singleton.hpp
deleted file mode 100644
index 9bb7336..0000000
--- a/source/modules/asura-utils/singleton.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef _ASURA_SINGLETON_H_
-#define _ASURA_SINGLETON_H_
-
-#include "UtilsConfig.h"
-
-namespace AsuraEngine
-{
-
- ///
- /// ̳Singletonڵһʵʱʵ֮ٴʵᱨ
- ///
- template<class T>
- class Singleton
- {
- public:
-
- static T* Get()
- {
- // ֮ǰûдһ
- if (!instance) instance = new T;
- // ʵ
- return instance;
- }
-
- static void Destroy()
- {
- delete instance;
- instance = nullptr;
- }
-
- protected:
-
- Singleton()
- {
- // instanceζִһʵǴġ
- ASSERT(!instance);
- // 򣬽ʵΪʵ
- instance = static_cast<T*>(this);
- };
-
- virtual ~Singleton() {};
-
- static T* instance;
-
- private:
-
- Singleton(const Singleton& singleton);
-
- Singleton& operator = (const Singleton& singleton);
-
- };
-
- // ʵʼΪ
- template<class T>
- T* Singleton<T>::instance = nullptr;
-
-}
-
-#endif // _ASURA_SINGLETON_H_ \ No newline at end of file