Starting database callback integration.

This commit is contained in:
lotodore
2009-09-19 20:28:30 +00:00
parent 8dbb11db92
commit 97e01d6b80
3 changed files with 54 additions and 17 deletions
+2
View File
@@ -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
+43 -10
View File
@@ -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 &
+9 -7
View File
@@ -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;