diff options
author | Naios <naios-dev@live.de> | 2016-03-11 16:10:47 +0100 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2016-03-11 18:25:55 +0100 |
commit | a8fe7f6eb7195368bbb4d0256927405f5e5c6f87 (patch) | |
tree | 66d6ff9ca11d60010cb8a73b49dc09d33a829959 | |
parent | 30517cb1d3b27d5abb8632d863797aa5749199a6 (diff) |
Core/Database: Move singleton instances into compilation units
* Fixes issues when building shared libraries
(prevents gcc and clang from providing several instance)
* Also instantiate the database worker pools in DatabaseEnv.cpp now.
-rw-r--r-- | src/server/bnetserver/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/server/bnetserver/Main.cpp | 1 | ||||
-rw-r--r-- | src/server/database/Database/DatabaseEnv.cpp | 23 | ||||
-rw-r--r-- | src/server/database/Database/DatabaseEnv.h | 5 | ||||
-rw-r--r-- | src/server/database/Database/DatabaseLoader.h | 2 | ||||
-rw-r--r-- | src/server/worldserver/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/server/worldserver/Main.cpp | 4 |
7 files changed, 30 insertions, 7 deletions
diff --git a/src/server/bnetserver/CMakeLists.txt b/src/server/bnetserver/CMakeLists.txt index c92f67ac957..10b8e562143 100644 --- a/src/server/bnetserver/CMakeLists.txt +++ b/src/server/bnetserver/CMakeLists.txt @@ -63,6 +63,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/database ${CMAKE_SOURCE_DIR}/src/server/database/Database ${CMAKE_SOURCE_DIR}/src/server/database/Logging + ${CMAKE_SOURCE_DIR}/src/server/database/Updater ${CMAKE_SOURCE_DIR}/src/server/ipc ${CMAKE_SOURCE_DIR}/src/server/shared ${CMAKE_SOURCE_DIR}/src/server/shared/Networking diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp index c367a1f7d40..310683dec37 100644 --- a/src/server/bnetserver/Main.cpp +++ b/src/server/bnetserver/Main.cpp @@ -81,7 +81,6 @@ static boost::asio::deadline_timer* _dbPingTimer; static uint32 _dbPingInterval; static boost::asio::deadline_timer* _banExpiryCheckTimer; static uint32 _banExpiryCheckInterval; -LoginDatabaseWorkerPool LoginDatabase; int main(int argc, char** argv) { diff --git a/src/server/database/Database/DatabaseEnv.cpp b/src/server/database/Database/DatabaseEnv.cpp new file mode 100644 index 00000000000..693158b7c9e --- /dev/null +++ b/src/server/database/Database/DatabaseEnv.cpp @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/> + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +#include "DatabaseEnv.h" + +WorldDatabaseWorkerPool WorldDatabase; +CharacterDatabaseWorkerPool CharacterDatabase; +LoginDatabaseWorkerPool LoginDatabase; +HotfixDatabaseWorkerPool HotfixDatabase; diff --git a/src/server/database/Database/DatabaseEnv.h b/src/server/database/Database/DatabaseEnv.h index 27b2bce744b..743341caf60 100644 --- a/src/server/database/Database/DatabaseEnv.h +++ b/src/server/database/Database/DatabaseEnv.h @@ -39,10 +39,13 @@ #include "Implementation/WorldDatabase.h" #include "Implementation/HotfixDatabase.h" +/// Accessor to the world database extern WorldDatabaseWorkerPool WorldDatabase; +/// Accessor to the character database extern CharacterDatabaseWorkerPool CharacterDatabase; +/// Accessor to the realm/login database extern LoginDatabaseWorkerPool LoginDatabase; +/// Accessor to the hotfix database extern HotfixDatabaseWorkerPool HotfixDatabase; #endif - diff --git a/src/server/database/Database/DatabaseLoader.h b/src/server/database/Database/DatabaseLoader.h index 1b31d3691c4..e40745f8cc3 100644 --- a/src/server/database/Database/DatabaseLoader.h +++ b/src/server/database/Database/DatabaseLoader.h @@ -19,7 +19,7 @@ #define DatabaseLoader_h__ #include "DatabaseWorkerPool.h" -#include "DatabaseEnv.h" +#include "DBUpdater.h" #include <functional> #include <stack> diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 1c7bfadddde..af30600fc09 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -65,6 +65,7 @@ include_directories( ${CMAKE_SOURCE_DIR}/src/server/database/ ${CMAKE_SOURCE_DIR}/src/server/database/Database ${CMAKE_SOURCE_DIR}/src/server/database/Logging + ${CMAKE_SOURCE_DIR}/src/server/database/Updater ${CMAKE_SOURCE_DIR}/src/server/game ${CMAKE_SOURCE_DIR}/src/server/game/Accounts ${CMAKE_SOURCE_DIR}/src/server/game/Addons diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp index 906937e974b..45bea2ad636 100644 --- a/src/server/worldserver/Main.cpp +++ b/src/server/worldserver/Main.cpp @@ -80,10 +80,6 @@ uint32 _worldLoopCounter(0); uint32 _lastChangeMsTime(0); uint32 _maxCoreStuckTimeInMs(0); -WorldDatabaseWorkerPool WorldDatabase; ///< Accessor to the world database -CharacterDatabaseWorkerPool CharacterDatabase; ///< Accessor to the character database -HotfixDatabaseWorkerPool HotfixDatabase; ///< Accessor to the hotfix database -LoginDatabaseWorkerPool LoginDatabase; ///< Accessor to the realm/login database Realm realm; void SignalHandler(const boost::system::error_code& error, int signalNumber); |