This commit is contained in:
2026-02-10 16:28:28 +03:00
parent 2cce331a67
commit ed7de8af4e
35 changed files with 418 additions and 358 deletions

View File

@@ -6,6 +6,7 @@
#include <Systems/Parsers/dataparser.h>
#include <Data/typesDataServerClient.h>
class DataParser;
class ClientAnswerParser : public QObject
{

View File

@@ -3,11 +3,12 @@
#include <QFile>
#include <QDomDocument>
DataParser::DataParser(AssetsManager *assetManager,ProcessingSystem *processingSystem,QObject *parent) :
DataParser::DataParser(ProcessingSystem *processingSystem,QObject *parent) :
QObject(parent)
{
qDebug() << "DataParser init thread ID " << QThread::currentThreadId();
this->processingSystem = processingSystem;
this->assetsManager = assetManager;
clientAnswer = new ClientAnswerParser;
clientAnswer->initialize(this);
@@ -21,8 +22,6 @@ QObject(parent)
processParser->initialize(processingSystem);
mutex = new QMutex;
qDebug() << "ParserThread: " << QThread::currentThreadId();
}

View File

@@ -3,7 +3,6 @@
#include "Systems/processingsystem.h"
#include "Systems/tools.h"
#include "Systems/assetsmanager.h"
#include "Systems/logger.h"
#include "Systems/Parsers/clientanswerparser.h"
#include "dbanswerparser.h"
@@ -21,7 +20,6 @@
class ProcessingSystem;
class ClientHandler;
class AssetsManager;
class ClientAnswerParser;
class DBAnswerParser;
class DocsAnswerParser;
@@ -32,7 +30,7 @@ class DataParser : public QObject
Q_OBJECT
public:
DataParser(AssetsManager *assetManager,ProcessingSystem *processingSystem,QObject* parent = nullptr);
DataParser(ProcessingSystem *processingSystem,QObject* parent = nullptr);
void xmlParser(ClientHandler *client, QByteArray array);
void xmlFileDataParse(QByteArray array);
@@ -53,7 +51,6 @@ private:
QMutex *mutex;
ProcessingSystem *processingSystem;
AssetsManager *assetsManager;
ClientAnswerParser *clientAnswer;
DBAnswerParser *dbAnswer;
DocsAnswerParser* docsAnswer;

View File

@@ -1,12 +1,16 @@
#include <QThread>
#include <QXmlStreamReader>
#include "assetsmanager.h"
AssetsManager::AssetsManager(QObject *parent) : QObject(parent)
{
qDebug() << "AssetsManager init thread ID " << QThread::currentThreadId();
}
void AssetsManager::initialize(UpdateController* updateContoller,DataParser *dataParser)
void AssetsManager::initialize(UpdateController* updateContoller)
{
qDebug() << "AssetsManager::initialize thread ID " << QThread::currentThreadId();
this->updateController = updateContoller;
//connect(this,&AssetsManager::sigSaveVersion,updateContoller,&UpdateController::saveVersionToFile);
datas = new QList<StreamingVersionData*>;
@@ -174,7 +178,7 @@ void AssetsManager::addVersion(StreamingVersionData *data)
void AssetsManager::createCopyVersion(QString versionName,QString newVersionName,QString author)
{
qDebug() << "assetManager thread ID " << QThread::currentThreadId();
qDebug() << "AssetsManager::createCopyVersion thread ID " << QThread::currentThreadId();
StreamingVersionData* data = new StreamingVersionData;
data->setAbsolutePath(Tools::createSharedPath("/" + newVersionName));

View File

@@ -5,13 +5,14 @@
#include <Systems/updatecontroller.h>
#include <Data/StreamingVersionData.h>
class UpdateController;
class AssetsManager : public QObject
{
Q_OBJECT
public:
explicit AssetsManager(QObject *parent = nullptr);
void initialize(UpdateController* updateContoller,DataParser *dataParser);
void initialize(UpdateController* updateContoller);
void addVersion(StreamingVersionData *data);
void createCopyVersion(QString versionName,QString newName,QString author);
void deleteVersion(QString version);

View File

@@ -2,11 +2,13 @@
ChatSystem::ChatSystem()
{
qDebug() << "ChatSystem init thread ID " << QThread::currentThreadId();
}
void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser *dataParser, QMap<int, ClientHandler*> *clientsMap)
{
qDebug() << "ChatSystem::initialize thread ID " << QThread::currentThreadId();
this->commonClientHandler = commonClientHandler;
this->dataParser = dataParser;
this->clientsMap = clientsMap;

View File

@@ -5,6 +5,8 @@
#include <QObject>
#include <Data/typesDataServerClient.h>
class CommonClientHandler;
class ChatSystem : public QObject
{
Q_OBJECT

View File

@@ -2,11 +2,13 @@
CommonClientHandler::CommonClientHandler(QObject *parent) : QObject(parent)
{
qDebug() << "CommonClientHandler init thread ID " << QThread::currentThreadId();
}
void CommonClientHandler::initialize(QMap<int, ClientHandler *> *clientsMap, ProcessingSystem *processingSystem, DataParser *dataParser)
{
qDebug() << "CommonClientHandler::initialize thread ID " << QThread::currentThreadId();
this->clientsMap = clientsMap;
this->processingSystem = processingSystem;
this->dataParser = dataParser;

View File

@@ -6,6 +6,7 @@
class ProcessingSystem;
class DataParser;
class ClientHandler;
class Logger;
class CommonClientHandler : public QObject

View File

@@ -8,7 +8,7 @@ DocsUpdater::DocsUpdater(UpdateController* updateController, QObject *parent):
updateController(updateController),
flagStop(false)
{
qDebug() << "DocsUpdater init thread ID " << QThread::currentThreadId();
}
DocsUpdater::~DocsUpdater()
@@ -39,7 +39,7 @@ QList<SubProc> DocsUpdater::getListSubProcForDMcode(QString dmCode)
bool DocsUpdater::slot_updateDocsXML()
{
qDebug() << "DocsUpdater::updateDocsXML thread ID " << QThread::currentThreadId();
qDebug() << "DocsUpdater::slot_updateDocsXML thread ID " << QThread::currentThreadId();
QMutexLocker locker(&mtxAccess);

View File

@@ -11,6 +11,8 @@ ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateControlle
cfiController(nullptr),
providerDBLMS(nullptr)
{
qDebug() << "ProcessingSystem init thread ID " << QThread::currentThreadId();
this->providerDBLMS = providerDBLMS;
this->updateController = updateController;
this->docsUpdater = docsUpdater;
@@ -22,6 +24,8 @@ void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataPar
UpdateController *updateController,
ChatSystem *chatSystem)
{
qDebug() << "ProcessingSystem::initialize thread ID " << QThread::currentThreadId();
this->commonClientServer = commonClientHandler;
this->dataParser = dataParser;
this->server = server;
@@ -299,7 +303,7 @@ void ProcessingSystem::processingExitUnityClient(ClientHandler *client)
void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQueryToDB clientQueryToDB, int id, void* data)
{
qDebug() << "ProcessingQueryThread " << QThread::currentThreadId();
qDebug() << "ProcessingSystem::processingClientQueryToDB thread ID " << QThread::currentThreadId();
switch (clientQueryToDB.typeQuery)
{
@@ -696,8 +700,6 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
}
else if(clientNotify.Code == commandDisableClient)
{
qDebug() << "processing thread: " << QThread::currentThreadId();
//Фиксируем время выхода Юнити-клиента
if (clientData->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
{

View File

@@ -15,6 +15,8 @@ QObject(parent)
void RecognizeSystem::initialize(UpdateController *updateController,DataParser* dataParser,SendSystem *sendSystem, ClientHandler *handler)
{
qDebug() << "RecognizeSystem::initialize thread ID " << QThread::currentThreadId();
this->updateController = updateController;
this->dataParser = dataParser;
this->clientHandler = handler;
@@ -27,15 +29,13 @@ void RecognizeSystem::initialize(UpdateController *updateController,DataParser*
connect(this,&RecognizeSystem::sigCopyVersion,updateController,&UpdateController::createCopyVersion,Qt::AutoConnection);
connect(this,&RecognizeSystem::sigXmlParser,dataParser->getProcessParser(),&ProcessParser::slot_read,Qt::AutoConnection);
//connect(this,&RecognizeSystem::sigRecalculateDocs,server,&ServerLMSWidget::slot_UpdateDocs,Qt::AutoConnection);
connect(this,&RecognizeSystem::sigSendDocs,sendSystem,&SendSystem::sendDocs,Qt::AutoConnection);
qDebug() << "Recognize init thread ID " << QThread::currentThreadId();
connect(this,&RecognizeSystem::sigSendDocs,sendSystem,&SendSystem::sendDocs,Qt::AutoConnection);
}
void RecognizeSystem::recognize()
{
QMutexLocker locker(mutex);
qDebug() << "Recognize thread ID " << QThread::currentThreadId();
qDebug() << "RecognizeSystem::recognize thread ID " << QThread::currentThreadId();
QMutexLocker locker(mutex);
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QByteArray data;

View File

@@ -7,12 +7,13 @@ SendSystem::SendSystem(QObject *parent) : QObject(parent)
void SendSystem::initialize(DataParser *dataParser,QMutex *globalMutex)
{
this->dataParser = dataParser;
connect(this,&SendSystem::sigSendXMLmessage,dataParser->ClientAnswer(),&ClientAnswerParser::message,Qt::AutoConnection);
connect(this,&SendSystem::sigSendNotify,dataParser->ClientAnswer(),&ClientAnswerParser::notify,Qt::DirectConnection); //потому что возвращает значение
connect(this,&SendSystem::sigSendVersion,dataParser->ClientAnswer(),&ClientAnswerParser::currentVersion,Qt::AutoConnection);
qDebug() << "SendSystem::initialize thread ID " << QThread::currentThreadId();
this->dataParser = dataParser;
//connect(this,&SendSystem::sigSendXMLmessage,dataParser->ClientAnswer(),&ClientAnswerParser::message,Qt::AutoConnection); //сигнал не используется
connect(this,&SendSystem::sigSendNotify,dataParser->ClientAnswer(),&ClientAnswerParser::notify,Qt::DirectConnection); //потому что возвращает значение
//connect(this,&SendSystem::sigSendVersion,dataParser->ClientAnswer(),&ClientAnswerParser::currentVersion,Qt::AutoConnection); //сигнал не используется
qDebug() << "SendSystem thread: " << QThread::currentThreadId();
mutex = globalMutex;
}
@@ -26,7 +27,8 @@ void SendSystem::setClient(Client *client,QTcpSocket *socket)
void SendSystem::sendNotify(QString notify)
{
qDebug() << "SendNotify thread: " << QThread::currentThreadId();
qDebug() << "SendSystem::sendNotify thread ID " << QThread::currentThreadId();
auto answer = emit sigSendNotify(notify);
sendXmlAnswer(answer);
}
@@ -140,7 +142,7 @@ void SendSystem::sendVersion()
void SendSystem::sendFileBlockWithRename(QString path, QString newName)
{
qDebug() << "sendFileBlockWithRename thread: " << QThread::currentThreadId();
qDebug() << "SendSystem::sendFileBlockWithRename thread ID " << QThread::currentThreadId();
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
@@ -232,7 +234,8 @@ void SendSystem::sendPacketType(PacketType packetType)
void SendSystem::sendXmlAnswer(QByteArray array, PacketType packetType)
{
qDebug() << "SendSystemThread: " << QThread::currentThreadId();
qDebug() << "SendSystem::sendXmlAnswer thread ID " << QThread::currentThreadId();
Logger::instance().log("SEND TO: "+ client->getLogin() + " " + enumToString(packetType) + "\n Text: " +
QString(array),LogLevel::DEBUG);
@@ -315,11 +318,6 @@ void SendSystem::socketClose()
socket->close();
}
bool SendSystem::socketFlush() //TODO: проверить использование
{
return socket->flush();
}
void SendSystem::sendStop()
{
isSendStopped = true;

View File

@@ -35,7 +35,6 @@ public:
void sendXmlAnswer(QByteArray array, PacketType packetType = PacketType::TYPE_XMLANSWER);
void sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount);
void updateFiles(QList<FileData> fileSendList, QList<FileData> deleteList);
bool socketFlush();
bool getIsSendStopped() const;
@@ -49,9 +48,9 @@ public slots:
signals:
void sigLoadHash();
QByteArray sigSendXMLmessage(QString loginFrom, QString loginTo, QString text, QString userType);
//QByteArray sigSendXMLmessage(QString loginFrom, QString loginTo, QString text, QString userType); //сигнал не используется
QByteArray sigSendNotify(QString message);
QByteArray sigSendVersion();
//QByteArray sigSendVersion(); //сигнал не используется
private:
Client *client;

View File

@@ -1,3 +1,4 @@
#include <QThread>
#include "updatecontroller.h"
@@ -5,16 +6,19 @@ UpdateController::UpdateController(QObject *parent) :
QObject(parent),
commonClientHandler(nullptr)
{
qDebug() << "UpdateController init thread ID " << QThread::currentThreadId();
buildPath = QDir::currentPath() + "/" + applicationFolderName;
sharedDataPath = QDir::currentPath() + "/" + sharedDataFolderName;
Logger::instance().log(buildPath);
qDebug() << hashFileName;
}
void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataParser *dataParser,AssetsManager *assetManager)
void UpdateController::initialize(CommonClientHandler *commonClientHandler,AssetsManager *assetManager)
{
qDebug() << "UpdateController::initialize thread ID " << QThread::currentThreadId();
this->commonClientHandler = commonClientHandler;
this->dataParser = dataParser;
this->assetManager = assetManager;
hashCalculator = new FastHashCalculator;
@@ -24,7 +28,7 @@ void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataP
}
sizeToSend = 0;
assetManager->initialize(this,dataParser);
assetManager->initialize(this);
if (!checkRequiredFolder())
{
@@ -37,19 +41,20 @@ void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataP
setUpCurrentServerHash();
mutex = new QMutex;
qDebug() << "UpdateController init thread ID " << QThread::currentThreadId();
emit sigInitializeFinished();
}
void UpdateController::changeAssetVersion(QString versionName)
{
qDebug() << "UpdateController::changeAssetVersion thread ID " << QThread::currentThreadId();
//commonClientHandler->slot_sendPacketToAllClients(PacketType::BUSY);
bool res = emit signal_BlockAutorization(true, "SERVER", "ChangeAssetVersion");
qDebug() << "UpdateController thread ID " << QThread::currentThreadId();
currentStreamingPath = assetManager->setVersion(versionName);
setUpCurrentServerHash();
emit sigUpdateDocs();
emit sigUpdateDocsXML();
commonClientHandler->slot_sendPacketToAllClients(PacketType::HASH_READY, false);
commonClientHandler->sendCurrentVersionToAllClient();

View File

@@ -10,14 +10,14 @@
#include <QMutex>
#include <QApplication>
#include <QMessageBox>
#include <Systems/Parsers/dataparser.h>
#include <Data/typesDataServerClient.h>
#include <Data/StreamingVersionData.h>
#include "fasthashcalculator.h"
#include "assetsmanager.h"
#include "commonclienthandler.h"
class TCPServer;
class SendSystem;
class DataParser;
class ClientHandler;
class AssetsManager;
class ServerLMSWidget;
@@ -30,7 +30,7 @@ class UpdateController : public QObject
public:
explicit UpdateController(QObject *parent = 0);
void initialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager);
void initialize(CommonClientHandler* commonClientHandler,AssetsManager *assetManager);
void compareFiles(ClientHandler* handler, QByteArray array);
void showHash();
void calculateFullHash();
@@ -67,7 +67,7 @@ public slots:
signals:
void sigErrorRequired(int code);
void sigUpdateDocs();
void sigUpdateDocsXML();
void sigInitializeFinished();
@@ -85,7 +85,6 @@ private:
QString sharedDataPath;
CommonClientHandler *commonClientHandler;
FastHashCalculator *hashCalculator;
DataParser *dataParser;
AssetsManager *assetManager;
quint64 sizeToSend;
QMutex *mutex;