]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/modulesystem/singletonmodule.h
Fix MSYS2 issues
[xonotic/netradiant.git] / libs / modulesystem / singletonmodule.h
index f68587b7b98c6fe5133e5d88c5b60504228fe207..8dcd88de17c708c82161abbd78052e0c1f68874b 100644 (file)
@@ -1,25 +1,25 @@
 /*
-Copyright (C) 2001-2006, William Joseph.
-All Rights Reserved.
+   Copyright (C) 2001-2006, William Joseph.
+   All Rights Reserved.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant 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.
+   GtkRadiant 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.
 
-GtkRadiant 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.
+   GtkRadiant 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 GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
-#if !defined(INCLUDED_MODULESYSTEM_SINGLETONMODULE_H)
+#if !defined( INCLUDED_MODULESYSTEM_SINGLETONMODULE_H )
 #define INCLUDED_MODULESYSTEM_SINGLETONMODULE_H
 
 #include "modulesystem.h"
@@ -32,38 +32,32 @@ template<typename API, typename Dependencies>
 class DefaultAPIConstructor
 {
 public:
-  const char* getName()
-  {
-    return typename API::Name();
-  }
-
-  API* constructAPI(Dependencies& dependencies)
-  {
-    return new API;
-  }
-  void destroyAPI(API* api)
-  {
-    delete api;
-  }
+const char* getName(){
+       return typename API::Name();
+}
+
+API* constructAPI( Dependencies& dependencies ){
+       return new API;
+}
+void destroyAPI( API* api ){
+       delete api;
+}
 };
 
 template<typename API, typename Dependencies>
 class DependenciesAPIConstructor
 {
 public:
-  const char* getName()
-  {
-    return typename API::Name();
-  }
-
-  API* constructAPI(Dependencies& dependencies)
-  {
-    return new API(dependencies);
-  }
-  void destroyAPI(API* api)
-  {
-    delete api;
-  }
+const char* getName(){
+       return typename API::Name();
+}
+
+API* constructAPI( Dependencies& dependencies ){
+       return new API( dependencies );
+}
+void destroyAPI( API* api ){
+       delete api;
+}
 };
 
 class NullDependencies
@@ -74,76 +68,63 @@ class NullDependencies
 template<typename API, typename Dependencies = NullDependencies, typename APIConstructor = DefaultAPIConstructor<API, Dependencies> >
 class SingletonModule : public APIConstructor, public Module, public ModuleRegisterable
 {
-  Dependencies* m_dependencies;
-  API* m_api;
-  std::size_t m_refcount;
-  bool m_dependencyCheck;
-  bool m_cycleCheck;
+Dependencies* m_dependencies;
+API* m_api;
+std::size_t m_refcount;
+bool m_dependencyCheck;
+bool m_cycleCheck;
 public:
-  typedef typename API::Type Type;
-
-  SingletonModule()
-    : m_dependencies(0), m_api(0), m_refcount(0), m_dependencyCheck(false), m_cycleCheck(false)
-  {
-  }
-  explicit SingletonModule(const APIConstructor& constructor)
-    : APIConstructor(constructor), m_dependencies(0), m_api(0), m_refcount(0), m_dependencyCheck(false), m_cycleCheck(false)
-  {
-  }
-  ~SingletonModule()
-  {
-    ASSERT_MESSAGE(m_refcount == 0, "module still referenced at shutdown");
-  }
-
-  void selfRegister()
-  {
-    globalModuleServer().registerModule(typename Type::Name(), typename Type::Version(), APIConstructor::getName(), *this);
-  }
-  
-  Dependencies& getDependencies()
-  {
-    return *m_dependencies;
-  }
-  void* getTable()
-  {
-    if(m_api != 0)
-    {
-      return m_api->getTable();
-    }
-    return 0;
-  }
-  void capture()
-  {
-    if(++m_refcount == 1)
-    {
-      globalOutputStream() << "Module Initialising: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
-      m_dependencies = new Dependencies();
-      m_dependencyCheck = !globalModuleServer().getError();
-      if(m_dependencyCheck)
-      {
-        m_api = APIConstructor::constructAPI(*m_dependencies);
-        globalOutputStream() << "Module Ready: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
-      }
-      else
-      {
-        globalOutputStream() << "Module Dependencies Failed: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
-      }
-      m_cycleCheck = true;
-    }
-
-    ASSERT_MESSAGE(m_cycleCheck, "cyclic dependency detected");
-  }
-  void release()
-  {
-    if(--m_refcount == 0)
-    {
-      if(m_dependencyCheck)
-      {
-        APIConstructor::destroyAPI(m_api);
-      }
-      delete m_dependencies;
-    }
-  }
+typedef typename API::Type Type;
+
+SingletonModule()
+       : m_dependencies( 0 ), m_api( 0 ), m_refcount( 0 ), m_dependencyCheck( false ), m_cycleCheck( false ){
+}
+explicit SingletonModule( const APIConstructor& constructor )
+       : APIConstructor( constructor ), m_dependencies( 0 ), m_api( 0 ), m_refcount( 0 ), m_dependencyCheck( false ), m_cycleCheck( false ){
+}
+~SingletonModule(){
+       ASSERT_MESSAGE( m_refcount == 0, "module still referenced at shutdown" );
+}
+
+void selfRegister(){
+       globalModuleServer().registerModule( typename Type::Name(), typename Type::Version(), APIConstructor::getName(), *this );
+       }
+
+Dependencies& getDependencies(){
+       return *m_dependencies;
+}
+void* getTable(){
+       if ( m_api != 0 ) {
+               return m_api->getTable();
+       }
+       return 0;
+}
+void capture(){
+       if ( ++m_refcount == 1 ) {
+               globalOutputStream() << "Module Initialising: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
+               m_dependencies = new Dependencies();
+               m_dependencyCheck = !globalModuleServer().getError();
+               if ( m_dependencyCheck ) {
+                       m_api = APIConstructor::constructAPI( *m_dependencies );
+                       globalOutputStream() << "Module Ready: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
+               }
+               else
+               {
+                       globalOutputStream() << "Module Dependencies Failed: '" << typename Type::Name() << "' '" << APIConstructor::getName() << "'\n";
+               }
+               m_cycleCheck = true;
+       }
+
+       ASSERT_MESSAGE( m_cycleCheck, "cyclic dependency detected" );
+}
+void release(){
+       if ( --m_refcount == 0 ) {
+               if ( m_dependencyCheck ) {
+                       APIConstructor::destroyAPI( m_api );
+               }
+               delete m_dependencies;
+       }
+}
 };