Files
RRJServer/DB_IaT/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp

88 lines
2.3 KiB
C++

#include "connectortoserver.h"
#include <QThread>
ConnectorToServer::ConnectorToServer(QObject *parent) :
QObject(parent),
connectionThread(nullptr),
client(nullptr),
dataParser(nullptr),
sendSystem(nullptr),
recognizeSystem(nullptr)
{
initialize();
}
bool ConnectorToServer::authorizationInstructorLocal(QString login, QString password)
{
if (!client->getIsConnected())
{
return false;
}
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = login;
autorization->Password = password;
dataParser->createAuthMessage(autorization);
emit sigSendAutorization();
return true;
}
bool ConnectorToServer::deAuthorizationInstructorLocal(QString login)
{
if (!client->getIsConnected())
{
return false;
}
ClientDeAutorization *deAutorization = new ClientDeAutorization;
deAutorization->Login = login;
dataParser->createDeAuthMessage(deAutorization);
emit sigSendDeAutorization();
return true;
}
void ConnectorToServer::initialize()
{
createObjects();
bindConnection();
emit sigInitializeClient(recognizeSystem,sendSystem,connectionThread);
emit sigSetConnect(dataParser->getServerSettings(),connectionThread);
}
void ConnectorToServer::bindConnection()
{
connect(this,&ConnectorToServer::sigInitializeClient,client,&TCPClient::initialize,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSetConnect,client,&TCPClient::setConnect,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(this,&ConnectorToServer::sigSendDeAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(recognizeSystem,&RecognizeSystem::sigSaveLoginData,this,&ConnectorToServer::sigLoginResult);
connect(recognizeSystem,&RecognizeSystem::sigDeAuth,this,&ConnectorToServer::sigDeLoginResult);
}
void ConnectorToServer::createObjects()
{
connectionThread = new QThread;
client = new TCPClient;
client->moveToThread(connectionThread);
dataParser = new DataParser;
sendSystem = new SendSystem;
sendSystem->moveToThread(connectionThread);
recognizeSystem = new RecognizeSystem;
recognizeSystem->moveToThread(connectionThread);
connectionThread->start();
connectionThread->setPriority(QThread::HighestPriority);
}