1 /********************************************************************
3 * Copyright (C) 2008 Davide Pesavento
5 * This file is part of GoMoku3D.
7 * GoMoku3D is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * GoMoku3D is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GoMoku3D. If not, see <http://www.gnu.org/licenses/>.
20 *******************************************************************/
26 #include <QLinkedList>
28 #include <QStringList>
31 #include "ServerSocket.h"
37 class GameServer
: public Network
42 GameServer(QWidget
*gui
, HistoryModel
*history
);
43 virtual ~GameServer();
45 virtual Point
requestMove();
46 virtual void setupChat(ChatWidget
*widget
);
47 virtual void setupGameLoop(GameLoop
*gameLoop
);
50 virtual void broadcastMove(Move move
);
53 QTcpServer
*_listener
;
54 QLinkedList
<ServerSocket
*> _pendingConnections
;
55 QList
<ServerSocket
*> _remotePlayers
;
56 QList
<ServerSocket
*> _spectators
;
59 HistoryModel
*_history
;
63 ServerSettings
*_settings
;
66 void handleIncomingConnection();
67 void handleJoinRequest(QString mode
, QString name
);
68 void setTurn(int playerId
);
71 void playerJoined(int id
, QString name
, QString type
);
72 void playerLeft(int id
);