#include "connectortoserver.h" #include 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; autorization->TypeClient = TypeClientAutorization::TYPE_GUI; 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; } bool ConnectorToServer::sendQueryToDB(TypeQueryToDB typeQuery) { if (!client->getIsConnected()) { return false; } ClientQueryToDB *queryToDB = new ClientQueryToDB; queryToDB->typeQuery = typeQuery; dataParser->createQueryToDBMessage(queryToDB); emit sigSendQueryToDB(); return true; } QList ConnectorToServer::getListInstructors() { return listInstructors; } QList ConnectorToServer::getListTrainees() { return listTrainees; } QList ConnectorToServer::getListGroups() { return listGroups; } void ConnectorToServer::slot_AnswerQueryToDB(QList* listInstructors, QList* listTrainees, QList* listGroups) { this->listInstructors = *listInstructors; this->listTrainees = *listTrainees; this->listGroups = *listGroups; emit signal_UpdateDB(true, 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(this,&ConnectorToServer::sigSendQueryToDB,sendSystem,&SendSystem::sendClientQueryToDB); connect(recognizeSystem,&RecognizeSystem::sigAuth,this,&ConnectorToServer::sigLoginResult); connect(recognizeSystem,&RecognizeSystem::sigDeAuth,this,&ConnectorToServer::sigDeLoginResult); connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryToDB,this,&ConnectorToServer::slot_AnswerQueryToDB); } 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); }