From 97e01d6b80aee3732a0e3149369c0f59d2e8be4e Mon Sep 17 00:00:00 2001 From: lotodore Date: Sat, 19 Sep 2009 20:28:30 +0000 Subject: [PATCH] Starting database callback integration. --- src/db/serverdbfactorygeneric.h | 2 ++ src/net/common/serverlobbythread.cpp | 53 ++++++++++++++++++++++------ src/net/serverlobbythread.h | 16 +++++---- 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/src/db/serverdbfactorygeneric.h b/src/db/serverdbfactorygeneric.h index c1a11405..10876399 100644 --- a/src/db/serverdbfactorygeneric.h +++ b/src/db/serverdbfactorygeneric.h @@ -36,4 +36,6 @@ public: ServerDBCallback &cb, boost::shared_ptr ioService); }; +typedef ServerDBFactoryGeneric DBFactory; + #endif diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index 810a9c07..0a7a816a 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -27,6 +27,13 @@ #include #include #include +#include +#include +#ifdef POKERTH_OFFICIAL_SERVER + #include +#else + #include +#endif #include #include #include @@ -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 sock) //} // Create a new session. - boost::shared_ptr sessionData(new SessionData(sock, m_curSessionId++, *m_senderCallback)); + boost::shared_ptr 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 & diff --git a/src/net/serverlobbythread.h b/src/net/serverlobbythread.h index bcb74aca..f42a54d8 100644 --- a/src/net/serverlobbythread.h +++ b/src/net/serverlobbythread.h @@ -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 #include @@ -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 m_ioService; - boost::shared_ptr m_senderCallback; + boost::shared_ptr m_internalServerCallback; boost::shared_ptr m_sender; boost::shared_ptr m_receiver; @@ -219,6 +220,7 @@ private: boost::shared_ptr m_banManager; boost::shared_ptr m_chatCleanerManager; + boost::shared_ptr m_database; boost::asio::deadline_timer m_removeGameTimer; boost::asio::deadline_timer m_removePlayerTimer;