diff options
Diffstat (limited to 'src/libjin/common')
-rw-r--r-- | src/libjin/common/singleton.h | 38 | ||||
-rw-r--r-- | src/libjin/common/subsystem.h | 43 |
2 files changed, 0 insertions, 81 deletions
diff --git a/src/libjin/common/singleton.h b/src/libjin/common/singleton.h deleted file mode 100644 index ff8a9ce..0000000 --- a/src/libjin/common/singleton.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __JIN_SINGLETON_H -#define __JIN_SINGLETON_H - -namespace jin -{ - template<class T> - class Singleton - { - public: - static T* get() - { - if (_instance == nullptr) - _instance = new T; - return _instance; - } - static void destroy() - { - delete _instance; - _instance = nullptr; - } - protected: - Singleton() {}; - virtual ~Singleton() {}; - private: - Singleton(const Singleton&); - Singleton& operator = (const Singleton&); - - static T* _instance; - }; - - template<class T> T* Singleton<T>::_instance = nullptr; - -#define SINGLETON(T) \ - friend Singleton<T> - -} // jin - -#endif
\ No newline at end of file diff --git a/src/libjin/common/subsystem.h b/src/libjin/common/subsystem.h deleted file mode 100644 index 8a4ecf6..0000000 --- a/src/libjin/common/subsystem.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __JIN_COMMON_SUBSYSTEM_H -#define __JIN_COMMON_SUBSYSTEM_H - -#include "singleton.h" -#include "../utils/macros.h" - -namespace jin -{ - - template<class System> - class Subsystem : public Singleton<System> - { - public: - struct Setting {}; - typedef Setting SettingBase; - - bool init(const SettingBase* setting) - { - static bool success = initSystem(setting); - return success; - } - - void quit() - { - CALLONCE(quitSystem()); - destroy(); - } - - protected: - - Subsystem() {}; - virtual ~Subsystem() {}; - - SINGLETON(System); - - virtual onlyonce bool initSystem(const Setting* setting) = 0; - virtual onlyonce void quitSystem() = 0; - - }; - -} // jin - -#endif
\ No newline at end of file |