40 lines
895 B
C++
40 lines
895 B
C++
/*
|
|
* @RDE_HEADER@
|
|
* Listen Server for Tetra Simulation
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
#include "server.h"
|
|
|
|
#include <NGLLogger/NGLLoggerBootstrap.h>
|
|
#include <QtNetwork/QTcpSocket>
|
|
|
|
#include "worker.h"
|
|
|
|
TTServer::TTServer(const TTSArgs &ttsArgs) : m_ttsArgs(ttsArgs)
|
|
.getNGLLogger("TTServer")),
|
|
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
|
{
|
|
connect(this, &TTServer::newConnection, this, &TTServer::onNewConnection);
|
|
}
|
|
|
|
void TTServer::onNewConnection()
|
|
{
|
|
QTcpSocket *sock = nextPendingConnection();
|
|
if (!sock)
|
|
return;
|
|
NOTICE_LOG(m_logger) << "New incoming connection from " << sock->peerName() << ":" << sock->peerPort();
|
|
|
|
TTWorker *ttw = new TTWorker(sock, m_ttsArgs);
|
|
if (!ttw->init())
|
|
exit(5);
|
|
|
|
connect(sock, &QTcpSocket::disconnected, this, &TTServer::onDisconnect);
|
|
}
|
|
|
|
void TTServer::onDisconnect()
|
|
{
|
|
NOTICE_LOG(m_logger) << "Disconnected";
|
|
}
|