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