Starting database callback integration.
This commit is contained in:
@@ -36,4 +36,6 @@ public:
|
|||||||
ServerDBCallback &cb, boost::shared_ptr<boost::asio::io_service> ioService);
|
ServerDBCallback &cb, boost::shared_ptr<boost::asio::io_service> ioService);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef ServerDBFactoryGeneric DBFactory;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -27,6 +27,13 @@
|
|||||||
#include <net/receiverhelper.h>
|
#include <net/receiverhelper.h>
|
||||||
#include <net/socket_msg.h>
|
#include <net/socket_msg.h>
|
||||||
#include <net/chatcleanermanager.h>
|
#include <net/chatcleanermanager.h>
|
||||||
|
#include <db/serverdbinterface.h>
|
||||||
|
#include <db/serverdbcallback.h>
|
||||||
|
#ifdef POKERTH_OFFICIAL_SERVER
|
||||||
|
#include <dbclosed/serverdbfactoryinternal.h>
|
||||||
|
#else
|
||||||
|
#include <db/serverdbfactorygeneric.h>
|
||||||
|
#endif
|
||||||
#include <core/avatarmanager.h>
|
#include <core/avatarmanager.h>
|
||||||
#include <core/loghelper.h>
|
#include <core/loghelper.h>
|
||||||
#include <core/openssl_wrapper.h>
|
#include <core/openssl_wrapper.h>
|
||||||
@@ -69,11 +76,11 @@ using namespace std;
|
|||||||
using boost::asio::ip::tcp;
|
using boost::asio::ip::tcp;
|
||||||
|
|
||||||
|
|
||||||
class ServerSenderCallback : public SenderCallback, public SessionDataCallback, public ChatCleanerCallback
|
class InternalServerCallback : public SenderCallback, public SessionDataCallback, public ChatCleanerCallback, public ServerDBCallback
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ServerSenderCallback(ServerLobbyThread &server) : m_server(server) {}
|
InternalServerCallback(ServerLobbyThread &server) : m_server(server) {}
|
||||||
virtual ~ServerSenderCallback() {}
|
virtual ~InternalServerCallback() {}
|
||||||
|
|
||||||
virtual void SignalNetError(SessionId /*session*/, int /*errorID*/, int /*osErrorID*/)
|
virtual void SignalNetError(SessionId /*session*/, int /*errorID*/, int /*osErrorID*/)
|
||||||
{
|
{
|
||||||
@@ -90,6 +97,30 @@ public:
|
|||||||
m_server.SendChatBotMsg(msg);
|
m_server.SendChatBotMsg(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void ConnectSuccess()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void ConnectFailed(const string &error)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void PlayerLoginSuccess(async_handle login, db_id playerId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void PlayerLoginFailed(async_handle login)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void CreateGameSuccess(async_handle create, db_id gameId)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void CreateGameFailed(async_handle create)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ServerLobbyThread &m_server;
|
ServerLobbyThread &m_server;
|
||||||
};
|
};
|
||||||
@@ -104,11 +135,13 @@ ServerLobbyThread::ServerLobbyThread(GuiInterface &gui, ServerIrcBotCallback &ir
|
|||||||
m_saveStatisticsTimer(*ioService), m_avatarLockTimer(*ioService),
|
m_saveStatisticsTimer(*ioService), m_avatarLockTimer(*ioService),
|
||||||
m_startTime(boost::posix_time::second_clock::local_time())
|
m_startTime(boost::posix_time::second_clock::local_time())
|
||||||
{
|
{
|
||||||
m_senderCallback.reset(new ServerSenderCallback(*this));
|
m_internalServerCallback.reset(new InternalServerCallback(*this));
|
||||||
m_sender.reset(new SenderHelper(*m_senderCallback, m_ioService));
|
m_sender.reset(new SenderHelper(*m_internalServerCallback, m_ioService));
|
||||||
m_receiver.reset(new ReceiverHelper);
|
m_receiver.reset(new ReceiverHelper);
|
||||||
m_banManager.reset(new ServerBanManager(m_ioService));
|
m_banManager.reset(new ServerBanManager(m_ioService));
|
||||||
m_chatCleanerManager.reset(new ChatCleanerManager(*m_senderCallback, m_ioService));
|
m_chatCleanerManager.reset(new ChatCleanerManager(*m_internalServerCallback, m_ioService));
|
||||||
|
DBFactory dbFactory;
|
||||||
|
m_database = dbFactory.CreateServerDBObject(*m_internalServerCallback, m_ioService);
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerLobbyThread::~ServerLobbyThread()
|
ServerLobbyThread::~ServerLobbyThread()
|
||||||
@@ -153,7 +186,7 @@ ServerLobbyThread::AddConnection(boost::shared_ptr<tcp::socket> sock)
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
// Create a new session.
|
// Create a new session.
|
||||||
boost::shared_ptr<SessionData> sessionData(new SessionData(sock, m_curSessionId++, *m_senderCallback));
|
boost::shared_ptr<SessionData> sessionData(new SessionData(sock, m_curSessionId++, *m_internalServerCallback));
|
||||||
m_sessionManager.AddSession(sessionData);
|
m_sessionManager.AddSession(sessionData);
|
||||||
|
|
||||||
LOG_VERBOSE("Accepted connection - session #" << sessionData->GetId() << ".");
|
LOG_VERBOSE("Accepted connection - session #" << sessionData->GetId() << ".");
|
||||||
@@ -1702,11 +1735,11 @@ ServerLobbyThread::CheckPassword(const string &password) const
|
|||||||
return (password == m_password);
|
return (password == m_password);
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerSenderCallback &
|
InternalServerCallback &
|
||||||
ServerLobbyThread::GetSenderCallback()
|
ServerLobbyThread::GetSenderCallback()
|
||||||
{
|
{
|
||||||
assert(m_senderCallback.get());
|
assert(m_internalServerCallback.get());
|
||||||
return *m_senderCallback;
|
return *m_internalServerCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuiInterface &
|
GuiInterface &
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Copyright (C) 2007 by Lothar May *
|
* Copyright (C) 2007-2009 by Lothar May *
|
||||||
* *
|
* *
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
* 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 *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
@@ -16,10 +16,10 @@
|
|||||||
* Free Software Foundation, Inc., *
|
* Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* Network server receive thread. */
|
/* Network server lobby thread. */
|
||||||
|
|
||||||
#ifndef _SERVERRECVTHREAD_H_
|
#ifndef _SERVERLOBBYTHREAD_H_
|
||||||
#define _SERVERRECVTHREAD_H_
|
#define _SERVERLOBBYTHREAD_H_
|
||||||
|
|
||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
@@ -37,13 +37,14 @@
|
|||||||
|
|
||||||
class SenderHelper;
|
class SenderHelper;
|
||||||
class ReceiverHelper;
|
class ReceiverHelper;
|
||||||
class ServerSenderCallback;
|
class InternalServerCallback;
|
||||||
class ServerIrcBotCallback;
|
class ServerIrcBotCallback;
|
||||||
class ServerGame;
|
class ServerGame;
|
||||||
class ServerBanManager;
|
class ServerBanManager;
|
||||||
class ConfigFile;
|
class ConfigFile;
|
||||||
class AvatarManager;
|
class AvatarManager;
|
||||||
class ChatCleanerManager;
|
class ChatCleanerManager;
|
||||||
|
class ServerDBInterface;
|
||||||
struct GameData;
|
struct GameData;
|
||||||
class Game;
|
class Game;
|
||||||
|
|
||||||
@@ -164,7 +165,7 @@ protected:
|
|||||||
|
|
||||||
bool CheckPassword(const std::string &password) const;
|
bool CheckPassword(const std::string &password) const;
|
||||||
|
|
||||||
ServerSenderCallback &GetSenderCallback();
|
InternalServerCallback &GetSenderCallback();
|
||||||
GuiInterface &GetGui();
|
GuiInterface &GetGui();
|
||||||
ServerIrcBotCallback &GetIrcBotCallback();
|
ServerIrcBotCallback &GetIrcBotCallback();
|
||||||
|
|
||||||
@@ -179,7 +180,7 @@ private:
|
|||||||
|
|
||||||
boost::shared_ptr<boost::asio::io_service> m_ioService;
|
boost::shared_ptr<boost::asio::io_service> m_ioService;
|
||||||
|
|
||||||
boost::shared_ptr<ServerSenderCallback> m_senderCallback;
|
boost::shared_ptr<InternalServerCallback> m_internalServerCallback;
|
||||||
boost::shared_ptr<SenderHelper> m_sender;
|
boost::shared_ptr<SenderHelper> m_sender;
|
||||||
boost::shared_ptr<ReceiverHelper> m_receiver;
|
boost::shared_ptr<ReceiverHelper> m_receiver;
|
||||||
|
|
||||||
@@ -219,6 +220,7 @@ private:
|
|||||||
|
|
||||||
boost::shared_ptr<ServerBanManager> m_banManager;
|
boost::shared_ptr<ServerBanManager> m_banManager;
|
||||||
boost::shared_ptr<ChatCleanerManager> m_chatCleanerManager;
|
boost::shared_ptr<ChatCleanerManager> m_chatCleanerManager;
|
||||||
|
boost::shared_ptr<ServerDBInterface> m_database;
|
||||||
|
|
||||||
boost::asio::deadline_timer m_removeGameTimer;
|
boost::asio::deadline_timer m_removeGameTimer;
|
||||||
boost::asio::deadline_timer m_removePlayerTimer;
|
boost::asio::deadline_timer m_removePlayerTimer;
|
||||||
|
|||||||
Reference in New Issue
Block a user