[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