aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2016-03-11 16:10:47 +0100
committerNaios <naios-dev@live.de>2016-03-11 18:25:55 +0100
commita8fe7f6eb7195368bbb4d0256927405f5e5c6f87 (patch)
tree66d6ff9ca11d60010cb8a73b49dc09d33a829959 /src
parent30517cb1d3b27d5abb8632d863797aa5749199a6 (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.
Diffstat (limited to 'src')
-rw-r--r--src/server/bnetserver/CMakeLists.txt1
-rw-r--r--src/server/bnetserver/Main.cpp1
-rw-r--r--src/server/database/Database/DatabaseEnv.cpp23
-rw-r--r--src/server/database/Database/DatabaseEnv.h5
-rw-r--r--src/server/database/Database/DatabaseLoader.h2
-rw-r--r--src/server/worldserver/CMakeLists.txt1
-rw-r--r--src/server/worldserver/Main.cpp4
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);