diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-12-17 21:32:20 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-12-17 21:32:20 +0100 |
commit | 389960211861736ef321df82f6abcb59f6302897 (patch) | |
tree | cbf44ddc93736ad8f059b947a08c26a31d242ee7 /src/Common/SingletonPtr.h | |
parent | e28a9c25c143635ffe8a1f9cee1d377a69a4f923 (diff) | |
download | mad-389960211861736ef321df82f6abcb59f6302897.tar mad-389960211861736ef321df82f6abcb59f6302897.zip |
Sinnlose Klassen SharedPtr und SingletonPtr entfernt
Diffstat (limited to 'src/Common/SingletonPtr.h')
-rw-r--r-- | src/Common/SingletonPtr.h | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/src/Common/SingletonPtr.h b/src/Common/SingletonPtr.h deleted file mode 100644 index 03d0040..0000000 --- a/src/Common/SingletonPtr.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SingletonPtr.h - * - * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de> - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef MAD_COMMON_SINGLETONPTR_H_ -#define MAD_COMMON_SINGLETONPTR_H_ - -#include "Initializable.h" -#include "Configurable.h" -#include "ConfigManager.h" - -namespace Mad { -namespace Common { - -template <typename T> -class SingletonPtr : public virtual Initializable { - private: - T *ptr; - - protected: - virtual void doInit() { - ptr = new T(); - - Initializable *in = dynamic_cast<Initializable*>(ptr); - if(in) { - in->initialized = true; - in->doInit(); - } - - Configurable *c = dynamic_cast<Configurable*>(ptr); - if(c) - ConfigManager::get()->registerConfigurable(c); - - if(in) { - initializing = false; - initialized = true; - } - } - - virtual void doDeinit() { - Configurable *c = dynamic_cast<Configurable*>(ptr); - if(c) - ConfigManager::get()->unregisterConfigurable(c); - - Initializable *in = dynamic_cast<Initializable*>(ptr); - if(in) { - in->doDeinit(); - in->initialized = false; - } - - delete ptr; - ptr = 0; - } - - public: - SingletonPtr() : ptr(0) {} - - T *get() { - if(!ptr) - init(); - - return ptr; - } -}; - -} -} - -#endif /* MAD_COMMON_SINGLETONPTR_H_ */ |