[Orxonox-commit 5875] r10535 - in code/branches/core7: src/libraries/core src/libraries/core/command src/libraries/core/commandline src/libraries/core/module src/libraries/core/singleton src/libraries/network test/core/class test/core/command test/core/object test/core/singleton

landauf at orxonox.net landauf at orxonox.net
Sat Jun 6 23:52:25 CEST 2015


Author: landauf
Date: 2015-06-06 23:52:25 +0200 (Sat, 06 Jun 2015)
New Revision: 10535

Added:
   code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.cc
   code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.h
Modified:
   code/branches/core7/src/libraries/core/Core.cc
   code/branches/core7/src/libraries/core/CoreIncludes.h
   code/branches/core7/src/libraries/core/CorePrereqs.h
   code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.cc
   code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.h
   code/branches/core7/src/libraries/core/command/ConsoleCommandIncludes.h
   code/branches/core7/src/libraries/core/commandline/CommandLineIncludes.h
   code/branches/core7/src/libraries/core/module/ModuleInstance.cc
   code/branches/core7/src/libraries/core/module/ModuleInstance.h
   code/branches/core7/src/libraries/core/module/StaticInitializationHandlerIncludes.h
   code/branches/core7/src/libraries/core/module/StaticInitializationManager.h
   code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.cc
   code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.h
   code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h
   code/branches/core7/src/libraries/network/CMakeLists.txt
   code/branches/core7/src/libraries/network/NetworkFunctionIncludes.cc
   code/branches/core7/src/libraries/network/NetworkFunctionIncludes.h
   code/branches/core7/src/libraries/network/NetworkPrereqs.h
   code/branches/core7/test/core/class/IdentifiableTest.cc
   code/branches/core7/test/core/class/IdentifierClassHierarchyTest.cc
   code/branches/core7/test/core/class/IdentifierExternalClassHierarchyTest.cc
   code/branches/core7/test/core/class/IdentifierNestedClassHierarchyTest.cc
   code/branches/core7/test/core/class/IdentifierSimpleClassHierarchyTest.cc
   code/branches/core7/test/core/class/IdentifierTest.cc
   code/branches/core7/test/core/class/SubclassIdentifierTest.cc
   code/branches/core7/test/core/class/SuperTest.cc
   code/branches/core7/test/core/command/CommandTest.cc
   code/branches/core7/test/core/object/ClassFactoryTest.cc
   code/branches/core7/test/core/object/ContextTest.cc
   code/branches/core7/test/core/object/IteratorTest.cc
   code/branches/core7/test/core/object/ListableTest.cc
   code/branches/core7/test/core/object/ObjectListIteratorTest.cc
   code/branches/core7/test/core/singleton/ScopeTest.cc
Log:
statically initialized instances are now registered with a type. CoreStaticInitializationHandler initializes all instances in core, NetworkStaticInitializationHandler initializes all instances in network.

Modified: code/branches/core7/src/libraries/core/Core.cc
===================================================================
--- code/branches/core7/src/libraries/core/Core.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/Core.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -125,18 +125,18 @@
         // Create a new dynamic library manager
         this->dynLibManager_ = new DynLibManager();
 
-        // TODO: initialize StaticInitializationManager
-        this->staticInitHandler_ = new CoreStaticInitializationHandler();
-        StaticInitializationManager::getInstance().addHandler(this->staticInitHandler_);
-
         // TODO: initialize Root-Context
         // TODO: initialize IdentifierManager here
         // TODO: initialize ScopeManager here
         // TODO: initialize CommandLineParser here
         // TODO: initialize ConsoleCommandManager here
         // TODO: initialize NetworkFunctionManager here
+        // TODO: initialize StaticInitializationManager
+        this->staticInitHandler_ = new CoreStaticInitializationHandler();
+        StaticInitializationManager::getInstance().addHandler(this->staticInitHandler_);
+
         this->rootModule_ = ModuleInstance::getCurrentModuleInstance();
-        this->rootModule_->loadAllStaticallyInitializedInstances(0);
+        StaticInitializationManager::getInstance().loadModule(this->rootModule_);
 
         // Parse command line arguments AFTER the modules have been loaded (static code!)
         CommandLineParser::parse(cmdLine);
@@ -197,7 +197,8 @@
 
         // creates the class hierarchy for all classes with factories
         orxout(internal_info) << "creating class hierarchy" << endl;
-        IdentifierManager::getInstance().createClassHierarchy();
+        this->staticInitHandler_->initInstances(this->rootModule_);
+        this->staticInitHandler_->setInitInstances(true);
 
         // Loader
         this->loaderInstance_ = new Loader();
@@ -252,7 +253,7 @@
         Context::getRootContext()->unregisterObject(); // unregister context from object lists - otherwise the root context would be destroyed while unloading the root module
         if (this->rootModule_)
         {
-            this->rootModule_->unloadAllStaticallyInitializedInstances(0);
+            StaticInitializationManager::getInstance().unloadModule(this->rootModule_);
             this->rootModule_->deleteAllStaticallyInitializedInstances();
         }
         if (this->staticInitHandler_)

Modified: code/branches/core7/src/libraries/core/CoreIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/CoreIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/CoreIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -225,7 +225,7 @@
 
         public:
             StaticallyInitializedIdentifier(Identifier* identifier)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::IDENTIFIER)
                 , identifier_(identifier)
             {}
             ~StaticallyInitializedIdentifier() { delete identifier_; }

Modified: code/branches/core7/src/libraries/core/CorePrereqs.h
===================================================================
--- code/branches/core7/src/libraries/core/CorePrereqs.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/CorePrereqs.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -85,6 +85,17 @@
         static const Value GRAPHICS = 2;
     }
 
+    namespace StaticInitialization
+    {
+        typedef int Type;
+
+        static const Type STATIC_INITIALIZATION_HANDLER = 1;
+        static const Type IDENTIFIER = 2;
+        static const Type SCOPED_SINGLETON_WRAPPER = 3;
+        static const Type COMMAND_LINE_ARGUMENT = 4;
+        static const Type CONSOLE_COMMAND = 5;
+    }
+
     namespace XMLPort
     {
         enum Mode

Modified: code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.cc
===================================================================
--- code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -46,13 +46,34 @@
 
     void CoreStaticInitializationHandler::loadModule(ModuleInstance* module)
     {
-        module->loadAllStaticallyInitializedInstances(0);
+        this->loadInstances(module);
+        if (this->bInitInstances_)
+            this->initInstances(module);
+    }
+
+    void CoreStaticInitializationHandler::loadInstances(ModuleInstance* module)
+    {
+        // the order of initialization is important
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::STATIC_INITIALIZATION_HANDLER);
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::COMMAND_LINE_ARGUMENT);
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
+    }
+
+    void CoreStaticInitializationHandler::initInstances(ModuleInstance* module)
+    {
         IdentifierManager::getInstance().createClassHierarchy();
         ScopeManager::getInstance().updateListeners();
     }
 
     void CoreStaticInitializationHandler::unloadModule(ModuleInstance* module)
     {
-        module->unloadAllStaticallyInitializedInstances(0);
+        // inverted order of initialization
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::COMMAND_LINE_ARGUMENT);
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::STATIC_INITIALIZATION_HANDLER);
     }
 }

Modified: code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.h
===================================================================
--- code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -37,12 +37,25 @@
 {
     class _CoreExport CoreStaticInitializationHandler : public StaticInitializationHandler
     {
+        friend class Core;
+
         public:
+            CoreStaticInitializationHandler() : bInitInstances_(false) {}
+
             virtual void setupHandler();
             virtual void shutdownHandler();
 
             virtual void loadModule(ModuleInstance* module);
             virtual void unloadModule(ModuleInstance* module);
+
+            inline void setInitInstances(bool bInitInstances)
+                { this->bInitInstances_ = bInitInstances; }
+
+        private:
+            void loadInstances(ModuleInstance* module);
+            void initInstances(ModuleInstance* module);
+
+            bool bInitInstances_;
     };
 }
 

Modified: code/branches/core7/src/libraries/core/command/ConsoleCommandIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/command/ConsoleCommandIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/command/ConsoleCommandIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -310,7 +310,7 @@
     {
         public:
             StaticallyInitializedConsoleCommand(ConsoleCommand* command)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::CONSOLE_COMMAND)
                 , command_(command)
             {}
             ~StaticallyInitializedConsoleCommand() { delete command_; }

Modified: code/branches/core7/src/libraries/core/commandline/CommandLineIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/commandline/CommandLineIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/commandline/CommandLineIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -58,7 +58,7 @@
     {
         public:
             StaticallyInitializedCommandLineArgument(CommandLineArgument* argument)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::COMMAND_LINE_ARGUMENT)
                 , argument_(argument)
             {}
             ~StaticallyInitializedCommandLineArgument() { delete argument_; }

Modified: code/branches/core7/src/libraries/core/module/ModuleInstance.cc
===================================================================
--- code/branches/core7/src/libraries/core/module/ModuleInstance.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/ModuleInstance.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -55,14 +55,14 @@
         this->staticallyInitializedInstancesByType_[instance->getType()].erase(instance);
     }
 
-    void ModuleInstance::loadAllStaticallyInitializedInstances(StaticallyInitializedInstance::Type type)
+    void ModuleInstance::loadAllStaticallyInitializedInstances(StaticInitialization::Type type)
     {
         const std::set<StaticallyInitializedInstance*>& instances = this->staticallyInitializedInstancesByType_[type];
         for (std::set<StaticallyInitializedInstance*>::iterator it = instances.begin(); it != instances.end(); ++it)
             (*it)->load();
     }
 
-    void ModuleInstance::unloadAllStaticallyInitializedInstances(StaticallyInitializedInstance::Type type)
+    void ModuleInstance::unloadAllStaticallyInitializedInstances(StaticInitialization::Type type)
     {
         const std::set<StaticallyInitializedInstance*>& instances = this->staticallyInitializedInstancesByType_[type];
         for (std::set<StaticallyInitializedInstance*>::iterator it = instances.begin(); it != instances.end(); ++it)
@@ -71,9 +71,9 @@
 
     void ModuleInstance::deleteAllStaticallyInitializedInstances()
     {
-        std::map<StaticallyInitializedInstance::Type, std::set<StaticallyInitializedInstance*> > copy(this->staticallyInitializedInstancesByType_);
+        std::map<StaticInitialization::Type, std::set<StaticallyInitializedInstance*> > copy(this->staticallyInitializedInstancesByType_);
         this->staticallyInitializedInstancesByType_.clear();
-        for (std::map<StaticallyInitializedInstance::Type, std::set<StaticallyInitializedInstance*> >::iterator it1 = copy.begin(); it1 != copy.end(); ++it1)
+        for (std::map<StaticInitialization::Type, std::set<StaticallyInitializedInstance*> >::iterator it1 = copy.begin(); it1 != copy.end(); ++it1)
             for (std::set<StaticallyInitializedInstance*>::iterator it2 = it1->second.begin(); it2 != it1->second.end(); ++it2)
                 delete (*it2);
     }

Modified: code/branches/core7/src/libraries/core/module/ModuleInstance.h
===================================================================
--- code/branches/core7/src/libraries/core/module/ModuleInstance.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/ModuleInstance.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -48,8 +48,8 @@
             void addStaticallyInitializedInstance(StaticallyInitializedInstance* instance);
             void removeStaticallyInitializedInstance(StaticallyInitializedInstance* instance);
 
-            void loadAllStaticallyInitializedInstances(StaticallyInitializedInstance::Type type);
-            void unloadAllStaticallyInitializedInstances(StaticallyInitializedInstance::Type type);
+            void loadAllStaticallyInitializedInstances(StaticInitialization::Type type);
+            void unloadAllStaticallyInitializedInstances(StaticInitialization::Type type);
 
             void deleteAllStaticallyInitializedInstances();
 
@@ -65,7 +65,7 @@
             static ModuleInstance* getCurrentModuleInstance();
 
         private:
-            std::map<StaticallyInitializedInstance::Type, std::set<StaticallyInitializedInstance*> > staticallyInitializedInstancesByType_;
+            std::map<StaticInitialization::Type, std::set<StaticallyInitializedInstance*> > staticallyInitializedInstancesByType_;
             std::string name_;
             DynLib* dynLib_;
 

Modified: code/branches/core7/src/libraries/core/module/StaticInitializationHandlerIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/module/StaticInitializationHandlerIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/StaticInitializationHandlerIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -47,7 +47,7 @@
     {
         public:
             StaticallyInitializedStaticInitializationHandler(StaticInitializationHandler* handler)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::STATIC_INITIALIZATION_HANDLER)
                 , handler_(handler)
             {}
             ~StaticallyInitializedStaticInitializationHandler() { delete handler_; }

Modified: code/branches/core7/src/libraries/core/module/StaticInitializationManager.h
===================================================================
--- code/branches/core7/src/libraries/core/module/StaticInitializationManager.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/StaticInitializationManager.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -37,8 +37,6 @@
 {
     class _CoreExport StaticInitializationManager
     {
-        friend class Core;
-
         public:
             static StaticInitializationManager& getInstance();
 

Modified: code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.cc
===================================================================
--- code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -32,7 +32,7 @@
 
 namespace orxonox
 {
-    StaticallyInitializedInstance::StaticallyInitializedInstance(Type type)
+    StaticallyInitializedInstance::StaticallyInitializedInstance(StaticInitialization::Type type)
     {
         this->type_ = type;
         this->module_ = ModuleInstance::getCurrentModuleInstance();

Modified: code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.h
===================================================================
--- code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/module/StaticallyInitializedInstance.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -36,20 +36,19 @@
     class _CoreExport StaticallyInitializedInstance
     {
         public:
-            typedef int Type;
 
-            StaticallyInitializedInstance(Type type);
+            StaticallyInitializedInstance(StaticInitialization::Type type);
             virtual ~StaticallyInitializedInstance();
 
             virtual void load() = 0;
             virtual void unload() = 0;
 
-            inline Type getType() const
+            inline StaticInitialization::Type getType() const
                 { return this->type_; }
 
         private:
             ModuleInstance* module_;
-            Type type_;
+            StaticInitialization::Type type_;
     };
 }
 

Modified: code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h
===================================================================
--- code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/core/singleton/ScopedSingletonIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -80,7 +80,7 @@
     {
         public:
             StaticallyInitializedScopedSingletonWrapper(ScopedSingletonWrapper* wrapper, ScopeID::Value scope)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::SCOPED_SINGLETON_WRAPPER)
                 , wrapper_(wrapper)
                 , scope_(scope)
             {}

Modified: code/branches/core7/src/libraries/network/CMakeLists.txt
===================================================================
--- code/branches/core7/src/libraries/network/CMakeLists.txt	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/network/CMakeLists.txt	2015-06-06 21:52:25 UTC (rev 10535)
@@ -35,6 +35,7 @@
   NetworkFunction.cc
   NetworkFunctionIncludes.cc
   NetworkFunctionManager.cc
+  NetworkStaticInitializationHandler.cc
   Host.cc
   Server.cc
   MasterServer.cc

Modified: code/branches/core7/src/libraries/network/NetworkFunctionIncludes.cc
===================================================================
--- code/branches/core7/src/libraries/network/NetworkFunctionIncludes.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/network/NetworkFunctionIncludes.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -29,8 +29,13 @@
 #include "NetworkFunctionIncludes.h"
 #include "NetworkFunctionManager.h"
 
+#include "core/module/StaticInitializationHandlerIncludes.h"
+#include "NetworkStaticInitializationHandler.h"
+
 namespace orxonox
 {
+    RegisterStaticInitializationHandler(NetworkStaticInitializationHandler);
+
     void StaticallyInitializedNetworkFunction::load()
     {
         NetworkFunctionManager::getInstance().registerFunction(this->function_);

Modified: code/branches/core7/src/libraries/network/NetworkFunctionIncludes.h
===================================================================
--- code/branches/core7/src/libraries/network/NetworkFunctionIncludes.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/network/NetworkFunctionIncludes.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -51,7 +51,7 @@
     {
         public:
             StaticallyInitializedNetworkFunction(NetworkFunctionBase* function)
-                : StaticallyInitializedInstance(0)
+                : StaticallyInitializedInstance(StaticInitialization::NETWORK_FUNCTION)
                 , function_(function)
             {}
             ~StaticallyInitializedNetworkFunction() { delete function_; }

Modified: code/branches/core7/src/libraries/network/NetworkPrereqs.h
===================================================================
--- code/branches/core7/src/libraries/network/NetworkPrereqs.h	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/src/libraries/network/NetworkPrereqs.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -96,6 +96,12 @@
       };
     }
   }
+
+  namespace StaticInitialization
+  {
+    typedef int Type;
+    static const Type NETWORK_FUNCTION = 6;
+  }
 }
 
 //-----------------------------------------------------------------------

Added: code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.cc
===================================================================
--- code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.cc	                        (rev 0)
+++ code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -0,0 +1,54 @@
+/*
+ *   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:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "NetworkStaticInitializationHandler.h"
+
+#include "core/module/ModuleInstance.h"
+
+namespace orxonox
+{
+    void NetworkStaticInitializationHandler::setupHandler()
+    {
+        // TODO
+    }
+
+    void NetworkStaticInitializationHandler::shutdownHandler()
+    {
+        // TODO
+    }
+
+    void NetworkStaticInitializationHandler::loadModule(ModuleInstance* module)
+    {
+        module->loadAllStaticallyInitializedInstances(StaticInitialization::NETWORK_FUNCTION);
+    }
+
+    void NetworkStaticInitializationHandler::unloadModule(ModuleInstance* module)
+    {
+        module->unloadAllStaticallyInitializedInstances(StaticInitialization::NETWORK_FUNCTION);
+    }
+}


Property changes on: code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.cc
___________________________________________________________________
Added: svn:eol-style
   + native

Added: code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.h
===================================================================
--- code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.h	                        (rev 0)
+++ code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.h	2015-06-06 21:52:25 UTC (rev 10535)
@@ -0,0 +1,49 @@
+/*
+ *   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:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#ifndef _NetworkStaticInitializationHandler_H__
+#define _NetworkStaticInitializationHandler_H__
+
+#include "network/NetworkPrereqs.h"
+
+#include "core/module/StaticInitializationHandler.h"
+
+namespace orxonox
+{
+    class _NetworkExport NetworkStaticInitializationHandler : public StaticInitializationHandler
+    {
+        public:
+            virtual void setupHandler();
+            virtual void shutdownHandler();
+
+            virtual void loadModule(ModuleInstance* module);
+            virtual void unloadModule(ModuleInstance* module);
+    };
+}
+
+#endif /* _NetworkStaticInitializationHandler_H__ */


Property changes on: code/branches/core7/src/libraries/network/NetworkStaticInitializationHandler.h
___________________________________________________________________
Added: svn:eol-style
   + native

Modified: code/branches/core7/test/core/class/IdentifiableTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifiableTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifiableTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -21,12 +21,12 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
     }

Modified: code/branches/core7/test/core/class/IdentifierClassHierarchyTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifierClassHierarchyTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifierClassHierarchyTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -141,7 +141,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
                 }
@@ -149,7 +149,7 @@
                 virtual void TearDown()
                 {
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
 

Modified: code/branches/core7/test/core/class/IdentifierExternalClassHierarchyTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifierExternalClassHierarchyTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifierExternalClassHierarchyTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -48,7 +48,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
                 }
@@ -56,7 +56,7 @@
                 virtual void TearDown()
                 {
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
 

Modified: code/branches/core7/test/core/class/IdentifierNestedClassHierarchyTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifierNestedClassHierarchyTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifierNestedClassHierarchyTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -108,7 +108,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
                 }
@@ -116,7 +116,7 @@
                 virtual void TearDown()
                 {
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
 

Modified: code/branches/core7/test/core/class/IdentifierSimpleClassHierarchyTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifierSimpleClassHierarchyTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifierSimpleClassHierarchyTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -50,7 +50,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
                 }
@@ -58,7 +58,7 @@
                 virtual void TearDown()
                 {
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
 

Modified: code/branches/core7/test/core/class/IdentifierTest.cc
===================================================================
--- code/branches/core7/test/core/class/IdentifierTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/IdentifierTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -28,12 +28,12 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
     }

Modified: code/branches/core7/test/core/class/SubclassIdentifierTest.cc
===================================================================
--- code/branches/core7/test/core/class/SubclassIdentifierTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/SubclassIdentifierTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -30,7 +30,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
 
@@ -42,7 +42,7 @@
                     Context::setRootContext(NULL);
 
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
     }

Modified: code/branches/core7/test/core/class/SuperTest.cc
===================================================================
--- code/branches/core7/test/core/class/SuperTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/class/SuperTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -71,7 +71,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
 
@@ -83,7 +83,7 @@
                     Context::setRootContext(NULL);
 
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
     }

Modified: code/branches/core7/test/core/command/CommandTest.cc
===================================================================
--- code/branches/core7/test/core/command/CommandTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/command/CommandTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -139,7 +139,7 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
                     Identifier::initConfigValues_s = false; // TODO: hack!
                     IdentifierManager::getInstance().createClassHierarchy();
                 }
@@ -147,7 +147,7 @@
                 virtual void TearDown()
                 {
                     IdentifierManager::getInstance().destroyClassHierarchy();
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
                 }
         };
     }

Modified: code/branches/core7/test/core/object/ClassFactoryTest.cc
===================================================================
--- code/branches/core7/test/core/object/ClassFactoryTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/object/ClassFactoryTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -3,6 +3,7 @@
 #include "core/BaseObject.h"
 #include "core/object/Context.h"
 #include "core/module/ModuleInstance.h"
+#include "core/CoreIncludes.h"
 
 namespace orxonox
 {
@@ -15,12 +16,12 @@
                 virtual void SetUp()
                 {
                     Context::setRootContext(new Context(NULL));
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Context::setRootContext(NULL);
                 }
         };

Modified: code/branches/core7/test/core/object/ContextTest.cc
===================================================================
--- code/branches/core7/test/core/object/ContextTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/object/ContextTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -23,12 +23,12 @@
                 virtual void SetUp()
                 {
                     Context::setRootContext(new Context(NULL));
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Context::setRootContext(NULL);
                 }
         };

Modified: code/branches/core7/test/core/object/IteratorTest.cc
===================================================================
--- code/branches/core7/test/core/object/IteratorTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/object/IteratorTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -34,12 +34,12 @@
                 virtual void SetUp()
                 {
                     Context::setRootContext(new Context(NULL));
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Context::setRootContext(NULL);
                 }
         };

Modified: code/branches/core7/test/core/object/ListableTest.cc
===================================================================
--- code/branches/core7/test/core/object/ListableTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/object/ListableTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -39,12 +39,12 @@
                 virtual void SetUp()
                 {
                     Context::setRootContext(new Context(NULL));
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Context::setRootContext(NULL);
                 }
         };

Modified: code/branches/core7/test/core/object/ObjectListIteratorTest.cc
===================================================================
--- code/branches/core7/test/core/object/ObjectListIteratorTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/object/ObjectListIteratorTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -26,12 +26,12 @@
                 virtual void SetUp()
                 {
                     Context::setRootContext(new Context(NULL));
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                     Context::setRootContext(NULL);
                 }
         };

Modified: code/branches/core7/test/core/singleton/ScopeTest.cc
===================================================================
--- code/branches/core7/test/core/singleton/ScopeTest.cc	2015-06-06 16:24:22 UTC (rev 10534)
+++ code/branches/core7/test/core/singleton/ScopeTest.cc	2015-06-06 21:52:25 UTC (rev 10535)
@@ -1,6 +1,7 @@
 #include <gtest/gtest.h>
 #include "core/singleton/ScopedSingletonIncludes.h"
 #include "core/module/ModuleInstance.h"
+#include "core/CoreIncludes.h"
 
 namespace orxonox
 {
@@ -26,12 +27,14 @@
             public:
                 virtual void SetUp()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
+                    ModuleInstance::getCurrentModuleInstance()->loadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
                 }
 
                 virtual void TearDown()
                 {
-                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(0);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
+                    ModuleInstance::getCurrentModuleInstance()->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
                 }
         };
     }




More information about the Orxonox-commit mailing list