From a4097659d3170a26b54916cbf1678882005f852b Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Sat, 21 May 2011 23:03:00 +0200 Subject: [PATCH] made server threading optional --- cockatrice/cockatrice.qrc | 7 ------- servatrice/servatrice.ini.example | 1 + servatrice/src/servatrice.cpp | 17 ++++++++++++++--- servatrice/src/servatrice.h | 5 +++-- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cockatrice/cockatrice.qrc b/cockatrice/cockatrice.qrc index 9e20650d..d57e461e 100644 --- a/cockatrice/cockatrice.qrc +++ b/cockatrice/cockatrice.qrc @@ -97,13 +97,6 @@ resources/counters/general.svg resources/counters/general_highlight.svg - resources/sounds/draw.raw - resources/sounds/notification.raw - resources/sounds/playcard.raw - resources/sounds/shuffle.raw - resources/sounds/tap.raw - resources/sounds/untap.raw - resources/userlevels/normal.svg resources/userlevels/registered.svg resources/userlevels/judge.svg diff --git a/servatrice/servatrice.ini.example b/servatrice/servatrice.ini.example index 72647bc4..8a01bc85 100644 --- a/servatrice/servatrice.ini.example +++ b/servatrice/servatrice.ini.example @@ -3,6 +3,7 @@ port=4747 statusupdate=15000 logfile=server.log id=1 +threaded=0 [authentication] method=none diff --git a/servatrice/src/servatrice.cpp b/servatrice/src/servatrice.cpp index 6346e0e9..ca5ef443 100644 --- a/servatrice/src/servatrice.cpp +++ b/servatrice/src/servatrice.cpp @@ -26,11 +26,21 @@ #include "serversocketinterface.h" #include "serversocketthread.h" #include "protocol.h" +#include "server_logger.h" +#include "main.h" void Servatrice_TcpServer::incomingConnection(int socketDescriptor) { - ServerSocketThread *sst = new ServerSocketThread(socketDescriptor, server, this); - sst->start(); + if (threaded) { + ServerSocketThread *sst = new ServerSocketThread(socketDescriptor, server, this); + sst->start(); + } else { + QTcpSocket *socket = new QTcpSocket; + socket->setSocketDescriptor(socketDescriptor); + logger->logMessage(QString("incoming connection: %1").arg(socket->peerAddress().toString())); + + new ServerSocketInterface(server, socket); + } } Servatrice::Servatrice(QSettings *_settings, QObject *parent) @@ -55,7 +65,8 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent) statusUpdateClock->start(statusUpdateTime); } - tcpServer = new Servatrice_TcpServer(this); + bool threaded = settings->value("server/threaded", false).toInt(); + tcpServer = new Servatrice_TcpServer(this, threaded); int port = settings->value("server/port", 4747).toInt(); qDebug() << "Starting server on port" << port; if (tcpServer->listen(QHostAddress::Any, port)) diff --git a/servatrice/src/servatrice.h b/servatrice/src/servatrice.h index 9498d8a1..f1174c91 100644 --- a/servatrice/src/servatrice.h +++ b/servatrice/src/servatrice.h @@ -36,9 +36,10 @@ class Servatrice_TcpServer : public QTcpServer { Q_OBJECT private: Servatrice *server; + bool threaded; public: - Servatrice_TcpServer(Servatrice *_server, QObject *parent = 0) - : QTcpServer(parent), server(_server) { } + Servatrice_TcpServer(Servatrice *_server, bool _threaded, QObject *parent = 0) + : QTcpServer(parent), server(_server), threaded(_threaded) { } protected: void incomingConnection(int socketDescriptor); };