From 066e5987c515dfc34537d73ca9d2a81ddd1f9e1b Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 21 Oct 2018 13:37:27 +0800 Subject: =?UTF-8?q?*=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Common/je_subsystem.hpp | 44 +++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) (limited to 'src/libjin/Common/je_subsystem.hpp') diff --git a/src/libjin/Common/je_subsystem.hpp b/src/libjin/Common/je_subsystem.hpp index 4966a9d..d8e106d 100644 --- a/src/libjin/Common/je_subsystem.hpp +++ b/src/libjin/Common/je_subsystem.hpp @@ -8,22 +8,40 @@ namespace JinEngine { + /// + /// Subsystem class. + /// template class Subsystem : public Singleton { public: - struct Setting {}; + /// + /// Subsystem setting. + /// + struct Setting + { + }; + typedef Setting SettingBase; + /// + /// Initialize subsystem. + /// + /// @param setting Subsystem setting. + /// @return True if initialize sucessful, otherwise return false. + /// bool init(const SettingBase* setting = nullptr) { static bool success = initSystem(setting); return success; } + /// + /// Quit subsystem. + /// void quit() { - /*call only once*/ + // Call only once. static char __dummy__ = (quitSystem(), 1); Singleton::destroy(); } @@ -31,11 +49,27 @@ namespace JinEngine protected: singleton(System); + /// + /// Subsystem constructor. + /// Subsystem() {}; - virtual ~Subsystem() {}; - /*onlyonce*/ virtual bool initSystem(const Setting* setting) = 0; - /*onlyonce*/ virtual void quitSystem() = 0; + /// + /// Subsystem destructor. + /// + virtual ~Subsystem() + { + }; + + /// + /// Initializer callback. + /// + virtual bool initSystem(const Setting* setting) = 0; + + /// + /// Quit subsystem callback. + /// + virtual void quitSystem() = 0; }; -- cgit v1.1-26-g67d0