[Orxonox-commit 5799] r10459 - in code/branches/core7: src/libraries/core src/libraries/core/input src/libraries/core/object src/libraries/core/singleton src/libraries/network src/modules/designtools src/modules/notifications src/modules/pickup src/modules/questsystem src/orxonox src/orxonox/chat src/orxonox/overlays src/orxonox/sound test/core/singleton
landauf at orxonox.net
landauf at orxonox.net
Sun May 24 13:48:19 CEST 2015
Author: landauf
Date: 2015-05-24 13:48:18 +0200 (Sun, 24 May 2015)
New Revision: 10459
Added:
code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h
Modified:
code/branches/core7/src/libraries/core/Core.cc
code/branches/core7/src/libraries/core/input/KeyBinderManager.cc
code/branches/core7/src/libraries/core/input/KeyDetector.cc
code/branches/core7/src/libraries/core/object/DestroyLaterManager.cc
code/branches/core7/src/libraries/core/singleton/ScopedSingletonWrapper.h
code/branches/core7/src/libraries/network/Client.cc
code/branches/core7/src/libraries/network/LANDiscovery.cc
code/branches/core7/src/libraries/network/MasterServer.cc
code/branches/core7/src/modules/designtools/ScreenshotManager.cc
code/branches/core7/src/modules/designtools/SkyboxGenerator.cc
code/branches/core7/src/modules/notifications/NotificationManager.cc
code/branches/core7/src/modules/pickup/PickupManager.cc
code/branches/core7/src/modules/questsystem/QuestManager.cc
code/branches/core7/src/orxonox/CameraManager.cc
code/branches/core7/src/orxonox/LevelManager.cc
code/branches/core7/src/orxonox/MoodManager.cc
code/branches/core7/src/orxonox/PlayerManager.cc
code/branches/core7/src/orxonox/chat/ChatHistory.cc
code/branches/core7/src/orxonox/chat/ChatInputHandler.cc
code/branches/core7/src/orxonox/chat/ChatManager.cc
code/branches/core7/src/orxonox/overlays/InGameConsole.cc
code/branches/core7/src/orxonox/sound/SoundManager.cc
code/branches/core7/test/core/singleton/ScopeTest.cc
Log:
wrap ScopedSingletonWrapper in a StaticallyInitializedScopedSingletonWrapper. doesn't do a lot at the moment.
Modified: code/branches/core7/src/libraries/core/Core.cc
===================================================================
--- code/branches/core7/src/libraries/core/Core.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/core/Core.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -56,7 +56,7 @@
#include "util/output/LogWriter.h"
#include "util/output/OutputManager.h"
#include "core/singleton/Scope.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "util/SignalHandler.h"
#include "PathConfig.h"
#include "commandline/CommandLineIncludes.h"
Modified: code/branches/core7/src/libraries/core/input/KeyBinderManager.cc
===================================================================
--- code/branches/core7/src/libraries/core/input/KeyBinderManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/core/input/KeyBinderManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -30,7 +30,7 @@
#include "util/Output.h"
#include "util/Exception.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/config/ConfigValueIncludes.h"
#include "core/CoreIncludes.h"
#include "core/LuaState.h"
Modified: code/branches/core7/src/libraries/core/input/KeyDetector.cc
===================================================================
--- code/branches/core7/src/libraries/core/input/KeyDetector.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/core/input/KeyDetector.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -29,7 +29,7 @@
#include "KeyDetector.h"
#include "core/CoreIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/command/ConsoleCommandIncludes.h"
#include "Button.h"
#include "InputManager.h"
Modified: code/branches/core7/src/libraries/core/object/DestroyLaterManager.cc
===================================================================
--- code/branches/core7/src/libraries/core/object/DestroyLaterManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/core/object/DestroyLaterManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -29,7 +29,7 @@
#include "DestroyLaterManager.h"
#include "core/CoreIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
namespace orxonox
{
Added: code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h (rev 0)
+++ code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h 2015-05-24 11:48:18 UTC (rev 10459)
@@ -0,0 +1,98 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Reto Grieder
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file
+ @ingroup SingletonScope
+ @brief Definition of the ManageScopedSingleton macro.
+*/
+
+#ifndef __ScopedSingletonIncludes_H__
+#define __ScopedSingletonIncludes_H__
+
+#include "core/CorePrereqs.h"
+
+#include "ScopedSingletonWrapper.h"
+#include "core/module/StaticallyInitializedInstance.h"
+
+/**
+ @brief Creates an orxonox::ScopedSingletonWrapper for an orxonox::Singleton and registers it with orxonox::ScopeManager.
+ @param className The name of the singleton class
+ @param scope The scope in which the singleton should exist
+ @param allowedToFail If true, the singleton is allowed to fail and thus a try-catch block is used when creating the singleton.
+
+ If this macro is called for a singleton, it is wrapped in a ScopedSingletonWrapper and registered with ScopeManager
+ and will thus be created if its scope becomes active and destroyed if is deactivated.
+
+
+ Usually a singleton gets created automatically when it is first used, but it will never
+ be destroyed (unless the singleton explicitly deletes itself). To allow controlled
+ construction and destruction, the singleton can be put within a virtual scope. This is
+ done by registering the singleton class with orxonox::ScopeManager. To
+ do so, the ManageScopedSingleton() macro has to be called:
+
+ @code
+ ManageScopedSingleton(TestSingleton, ScopeID::Graphics, false); // muste be called in a source (*.cc) file
+ @endcode
+
+ @b Important: If you call ManageScopedSingleton(), you don't have to initialize singletonPtr_s anymore,
+ because that's already done by the macro.
+
+ Now the singleton TestSingleton gets automatically created if the scope Graphics becomes
+ active and also gets destroyed if the scope is deactivated.
+
+ Note that not all singletons must register with a scope, but it's recommended.
+
+*/
+#define ManageScopedSingleton(className, scope, allowedToFail) \
+ className* className::singletonPtr_s = NULL; \
+ static ScopedSingletonWrapper& className##ScopedSingletonWrapper \
+ = (new orxonox::SI_SSW(new ClassScopedSingletonWrapper<className, scope, allowedToFail>(#className)))->getWrapper()
+
+namespace orxonox
+{
+
+ class _CoreExport StaticallyInitializedScopedSingletonWrapper : public StaticallyInitializedInstance
+ {
+ public:
+ StaticallyInitializedScopedSingletonWrapper(ScopedSingletonWrapper* wrapper) : wrapper_(wrapper) {}
+
+ virtual void load() {}
+ virtual void unload() {}
+
+ inline ScopedSingletonWrapper& getWrapper()
+ { return *this->wrapper_; }
+
+ private:
+ ScopedSingletonWrapper* wrapper_;
+ };
+
+ typedef StaticallyInitializedScopedSingletonWrapper SI_SSW;
+}
+
+#endif /* __ScopedSingletonIncludes_H__ */
Modified: code/branches/core7/src/libraries/core/singleton/ScopedSingletonWrapper.h
===================================================================
--- code/branches/core7/src/libraries/core/singleton/ScopedSingletonWrapper.h 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/core/singleton/ScopedSingletonWrapper.h 2015-05-24 11:48:18 UTC (rev 10459)
@@ -29,7 +29,7 @@
/**
@file
@ingroup SingletonScope
- @brief Definition of orxonox::ScopedSingletonWrapper, orxonox::ClassScopedSingletonWrapper, and the ManageScopedSingleton macro.
+ @brief Definition of orxonox::ScopedSingletonWrapper and orxonox::ClassScopedSingletonWrapper.
ScopedSingletonWrapper is used to create and destroy Singletons that belong to
a given Scope. For each one of these singletons, the macro ManageScopedSingleton()
@@ -51,39 +51,6 @@
#include "util/Singleton.h"
#include "Scope.h"
-/**
- @brief Creates an orxonox::ScopedSingletonWrapper for an orxonox::Singleton and registers it with orxonox::ScopeManager.
- @param className The name of the singleton class
- @param scope The scope in which the singleton should exist
- @param allowedToFail If true, the singleton is allowed to fail and thus a try-catch block is used when creating the singleton.
-
- If this macro is called for a singleton, it is wrapped in a ScopedSingletonWrapper and registered with ScopeManager
- and will thus be created if its scope becomes active and destroyed if is deactivated.
-
-
- Usually a singleton gets created automatically when it is first used, but it will never
- be destroyed (unless the singleton explicitly deletes itself). To allow controlled
- construction and destruction, the singleton can be put within a virtual scope. This is
- done by registering the singleton class with orxonox::ScopeManager. To
- do so, the ManageScopedSingleton() macro has to be called:
-
- @code
- ManageScopedSingleton(TestSingleton, ScopeID::Graphics, false); // muste be called in a source (*.cc) file
- @endcode
-
- @b Important: If you call ManageScopedSingleton(), you don't have to initialize singletonPtr_s anymore,
- because that's already done by the macro.
-
- Now the singleton TestSingleton gets automatically created if the scope Graphics becomes
- active and also gets destroyed if the scope is deactivated.
-
- Note that not all singletons must register with a scope, but it's recommended.
-
-*/
-#define ManageScopedSingleton(className, scope, allowedToFail) \
- className* className::singletonPtr_s = NULL; \
- static ClassScopedSingletonWrapper<className, scope, allowedToFail> className##ScopedSingletonWrapper(#className)
-
namespace orxonox
{
/**
Modified: code/branches/core7/src/libraries/network/Client.cc
===================================================================
--- code/branches/core7/src/libraries/network/Client.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/network/Client.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -51,7 +51,7 @@
#include "core/CoreIncludes.h"
#include "core/Game.h"
#include "core/commandline/CommandLineParser.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
namespace orxonox
{
Modified: code/branches/core7/src/libraries/network/LANDiscovery.cc
===================================================================
--- code/branches/core7/src/libraries/network/LANDiscovery.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/network/LANDiscovery.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -32,7 +32,7 @@
#include <cstring>
#include "core/CoreIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
namespace orxonox
Modified: code/branches/core7/src/libraries/network/MasterServer.cc
===================================================================
--- code/branches/core7/src/libraries/network/MasterServer.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/libraries/network/MasterServer.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -30,7 +30,7 @@
#include "core/command/ConsoleCommandIncludes.h"
#include "core/CoreIncludes.h"
#include "core/CorePrereqs.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "util/Output.h"
namespace orxonox
Modified: code/branches/core7/src/modules/designtools/ScreenshotManager.cc
===================================================================
--- code/branches/core7/src/modules/designtools/ScreenshotManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/modules/designtools/ScreenshotManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -47,7 +47,7 @@
#include "core/PathConfig.h"
#include "core/Resource.h"
#include "core/command/ConsoleCommandIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "util/StringUtils.h"
#include "CameraManager.h"
Modified: code/branches/core7/src/modules/designtools/SkyboxGenerator.cc
===================================================================
--- code/branches/core7/src/modules/designtools/SkyboxGenerator.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/modules/designtools/SkyboxGenerator.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -44,7 +44,7 @@
#include "core/Resource.h"
#include "core/command/ConsoleCommandIncludes.h"
#include "core/command/CommandExecutor.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "controllers/HumanController.h"
#include "graphics/Camera.h"
Modified: code/branches/core7/src/modules/notifications/NotificationManager.cc
===================================================================
--- code/branches/core7/src/modules/notifications/NotificationManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/modules/notifications/NotificationManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -36,7 +36,7 @@
#include "core/command/ConsoleCommand.h"
#include "core/CoreIncludes.h"
#include "core/LuaState.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "interfaces/NotificationListener.h"
Modified: code/branches/core7/src/modules/pickup/PickupManager.cc
===================================================================
--- code/branches/core7/src/modules/pickup/PickupManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/modules/pickup/PickupManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -37,7 +37,7 @@
#include "core/LuaState.h"
#include "core/GUIManager.h"
#include "core/class/Identifier.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "network/Host.h"
#include "network/NetworkFunction.h"
Modified: code/branches/core7/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/branches/core7/src/modules/questsystem/QuestManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/modules/questsystem/QuestManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -35,7 +35,7 @@
#include "util/Exception.h"
#include "util/OrxAssert.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/command/ConsoleCommand.h"
#include "core/GUIManager.h"
#include "core/LuaState.h"
Modified: code/branches/core7/src/orxonox/CameraManager.cc
===================================================================
--- code/branches/core7/src/orxonox/CameraManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/CameraManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -37,7 +37,7 @@
#include "core/GameMode.h"
#include "core/GraphicsManager.h"
#include "core/object/ObjectList.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "tools/Shader.h"
#include "graphics/Camera.h"
Modified: code/branches/core7/src/orxonox/LevelManager.cc
===================================================================
--- code/branches/core7/src/orxonox/LevelManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/LevelManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -35,7 +35,7 @@
#include <map>
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/commandline/CommandLineIncludes.h"
#include "core/config/ConfigValueIncludes.h"
#include "core/CoreIncludes.h"
Modified: code/branches/core7/src/orxonox/MoodManager.cc
===================================================================
--- code/branches/core7/src/orxonox/MoodManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/MoodManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -28,7 +28,7 @@
#include "MoodManager.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/config/ConfigValueIncludes.h"
#include "core/CoreIncludes.h"
#include "core/Resource.h"
Modified: code/branches/core7/src/orxonox/PlayerManager.cc
===================================================================
--- code/branches/core7/src/orxonox/PlayerManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/PlayerManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -30,7 +30,7 @@
#include "core/CoreIncludes.h"
#include "core/GameMode.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "Level.h"
#include "LevelManager.h"
Modified: code/branches/core7/src/orxonox/chat/ChatHistory.cc
===================================================================
--- code/branches/core7/src/orxonox/chat/ChatHistory.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/chat/ChatHistory.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -27,7 +27,7 @@
*/
#include "ChatHistory.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#ifndef CHATTEST
namespace orxonox
Modified: code/branches/core7/src/orxonox/chat/ChatInputHandler.cc
===================================================================
--- code/branches/core7/src/orxonox/chat/ChatInputHandler.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/chat/ChatInputHandler.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -46,7 +46,7 @@
# include <elements/CEGUIListboxTextItem.h>
#endif
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/CoreIncludes.h"
#include "core/GUIManager.h"
#include "core/command/ConsoleCommandIncludes.h"
Modified: code/branches/core7/src/orxonox/chat/ChatManager.cc
===================================================================
--- code/branches/core7/src/orxonox/chat/ChatManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/chat/ChatManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -30,7 +30,7 @@
#include "ChatListener.h"
#include "core/CoreIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/command/ConsoleCommandIncludes.h"
#include "network/Host.h"
Modified: code/branches/core7/src/orxonox/overlays/InGameConsole.cc
===================================================================
--- code/branches/core7/src/orxonox/overlays/InGameConsole.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/overlays/InGameConsole.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -49,7 +49,7 @@
#include "core/CoreIncludes.h"
#include "core/config/ConfigValueIncludes.h"
#include "core/command/ConsoleCommandIncludes.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/GUIManager.h"
#include "core/input/InputManager.h"
#include "core/input/InputState.h"
Modified: code/branches/core7/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/branches/core7/src/orxonox/sound/SoundManager.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/src/orxonox/sound/SoundManager.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -37,7 +37,7 @@
#include "util/Exception.h"
#include "util/Math.h"
#include "util/Clock.h"
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
#include "core/config/ConfigValueIncludes.h"
#include "core/CoreIncludes.h"
#include "core/GameMode.h"
Modified: code/branches/core7/test/core/singleton/ScopeTest.cc
===================================================================
--- code/branches/core7/test/core/singleton/ScopeTest.cc 2015-05-24 09:51:05 UTC (rev 10458)
+++ code/branches/core7/test/core/singleton/ScopeTest.cc 2015-05-24 11:48:18 UTC (rev 10459)
@@ -1,5 +1,5 @@
#include <gtest/gtest.h>
-#include "core/singleton/ScopedSingletonWrapper.h"
+#include "core/singleton/ScopedSingletonIncludes.h"
namespace orxonox
{
More information about the Orxonox-commit
mailing list