From c7f2afe3c29550c5bfc793814008e63cd53d7bef Mon Sep 17 00:00:00 2001 From: semenov Date: Tue, 27 Jan 2026 12:04:46 +0300 Subject: [PATCH] feat: add CFI Update --- .../connectorToServer/Core/recognizesystem.cpp | 4 ++-- LibServer/Data/PacketType.h | 3 +++ LibServer/Systems/Parsers/processparser.cpp | 10 ++++++++++ LibServer/Systems/Parsers/processparser.h | 1 + LibServer/Systems/processingsystem.cpp | 5 +++++ LibServer/Systems/processingsystem.h | 2 ++ LibServer/Systems/recognizesystem.cpp | 5 +++++ LibServer/Systems/sendsystem.cpp | 2 +- LibServer/serverlmswidget.cpp | 4 ++-- 9 files changed, 31 insertions(+), 5 deletions(-) diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp index 466e8bd..4e394cf 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp +++ b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp @@ -260,12 +260,12 @@ void RecognizeSystem::recognize(QTcpSocket *socket) if(packetType == PacketType::BUSY) { - signal_ServerBlockState(true); + emit signal_ServerBlockState(true); } if(packetType == PacketType::FREE) { - signal_ServerBlockState(false); + emit signal_ServerBlockState(false); } if(packetType == PacketType::HASH_READY) diff --git a/LibServer/Data/PacketType.h b/LibServer/Data/PacketType.h index 2b0445c..93906b7 100644 --- a/LibServer/Data/PacketType.h +++ b/LibServer/Data/PacketType.h @@ -22,6 +22,8 @@ enum PacketType TYPE_FILESIZE = 20, TYPE_BIGXML = 21, UPDATE_DOCS_COMPLETE = 22, + TYPE_CFIUPDATE = 23, + TYPE_UPDATEDCFI = 24, TYPE_XMLANSWER_MESSAGE_FOR_GUI = 90, @@ -103,6 +105,7 @@ inline QString enumToString(PacketType value) { case PacketType::RECALCULATE_DOCS: return "RECALCULATE_DOCS"; case PacketType::GET_DOCS: return "GET_DOCS"; case PacketType::SEND_HASH: return "SEND_HASH"; + case PacketType::TYPE_CFIUPDATE: return "CFI_UPDATE"; default: return "Unknown"; diff --git a/LibServer/Systems/Parsers/processparser.cpp b/LibServer/Systems/Parsers/processparser.cpp index f272608..617d388 100644 --- a/LibServer/Systems/Parsers/processparser.cpp +++ b/LibServer/Systems/Parsers/processparser.cpp @@ -82,6 +82,10 @@ void ProcessParser::slot_read(ClientHandler *client, QByteArray array) clientBlockAuth(xmlReader,client); } + else if(xmlReader.name() == "CFIObjects") + { + compareCFIObjects(array,client); + } else { emit sigLogMessage("XmlParser: unrecognized tag"); @@ -597,4 +601,10 @@ void ProcessParser::clientNotify(QXmlStreamReader &xmlReader,ClientHandler *clie processingSystem->processingClientNotify(client, clientNotify); } +void ProcessParser::compareCFIObjects(QByteArray array,ClientHandler *clientHandler) +{ + QByteArray temp = array; + processingSystem->processingCFIUpdate(temp,clientHandler); + +} diff --git a/LibServer/Systems/Parsers/processparser.h b/LibServer/Systems/Parsers/processparser.h index f482913..ab86997 100644 --- a/LibServer/Systems/Parsers/processparser.h +++ b/LibServer/Systems/Parsers/processparser.h @@ -13,6 +13,7 @@ public: explicit ProcessParser(QObject *parent = nullptr); void initialize(ProcessingSystem *processingSystem); + void compareCFIObjects(QByteArray array,ClientHandler *clientHandler); public slots: void slot_read(ClientHandler *client, QByteArray array); diff --git a/LibServer/Systems/processingsystem.cpp b/LibServer/Systems/processingsystem.cpp index dfcf289..69bdda2 100644 --- a/LibServer/Systems/processingsystem.cpp +++ b/LibServer/Systems/processingsystem.cpp @@ -226,6 +226,11 @@ void ProcessingSystem::processingClientDeAutorization(QString login) } } +void ProcessingSystem::processingCFIUpdate(QByteArray array, ClientHandler *handler) +{ + handler->sendXmlAnswer(array); +} + void ProcessingSystem::processingEntryUnityClient(ClientHandler *client) { QString login = client->getClient()->getLogin(); diff --git a/LibServer/Systems/processingsystem.h b/LibServer/Systems/processingsystem.h index 9da41a9..90a6392 100644 --- a/LibServer/Systems/processingsystem.h +++ b/LibServer/Systems/processingsystem.h @@ -57,6 +57,8 @@ public: ClientHandler* getUnityClientById(int id); void processingClientDeAutorization(QString login); + void processingCFIUpdate(QByteArray array,ClientHandler *handler); + void processingEntryUnityClient(ClientHandler *client); void processingExitUnityClient(ClientHandler *client); signals: diff --git a/LibServer/Systems/recognizesystem.cpp b/LibServer/Systems/recognizesystem.cpp index 0d06400..c864b91 100644 --- a/LibServer/Systems/recognizesystem.cpp +++ b/LibServer/Systems/recognizesystem.cpp @@ -510,6 +510,11 @@ void RecognizeSystem::recognize() packetType = PacketType::TYPE_NONE; client->setClientHash(hash); } + + if(packetType == PacketType::TYPE_CFIUPDATE) + { + qDebug() << "CFI HELLO"; + } packetType = PacketType::TYPE_NONE; } diff --git a/LibServer/Systems/sendsystem.cpp b/LibServer/Systems/sendsystem.cpp index e506fff..9df08d8 100644 --- a/LibServer/Systems/sendsystem.cpp +++ b/LibServer/Systems/sendsystem.cpp @@ -125,7 +125,7 @@ void SendSystem::sendFileBlockByteArray(QByteArray array, PacketType packetType) while (size > 0) { QByteArray chunk = array.mid(bytesSended,sendFileBlockSize); - quint64 bytesSended = socket->write(chunk); + bytesSended = socket->write(chunk); size -= bytesSended; } diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp index 2790b4e..d94a670 100644 --- a/LibServer/serverlmswidget.cpp +++ b/LibServer/serverlmswidget.cpp @@ -384,8 +384,8 @@ void ServerLMSWidget::startInitialization_step0() server = new MultiThreadServer(this, updateController, processingSystem, dataParser, 6000); connect(server, &MultiThreadServer::signal_BlockAutorizationIndicate, this, &ServerLMSWidget::slot_BlockAutorizationIndicate); - connect(providerDBLMS, &ProviderDBLMS::signal_BlockAutorization, server, &MultiThreadServer::slot_BlockAutorization, Qt::DirectConnection); - connect(updateController, &UpdateController::signal_BlockAutorization, server, &MultiThreadServer::slot_BlockAutorization, Qt::DirectConnection); + connect(providerDBLMS, &ProviderDBLMS::signal_BlockAutorization, server, &MultiThreadServer::slot_BlockAutorization, Qt::AutoConnection); + connect(updateController, &UpdateController::signal_BlockAutorization, server, &MultiThreadServer::slot_BlockAutorization, Qt::AutoConnection); connect(server, &MultiThreadServer::signal_sendPacketToAllClients, commonClientHandler, &CommonClientHandler::slot_sendPacketToAllClients); loggerThread->start();