mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
feat: add logger with write to file
This commit is contained in:
@@ -5,14 +5,11 @@ CommonClientHandler::CommonClientHandler(QObject *parent) : QObject(parent)
|
||||
|
||||
}
|
||||
|
||||
void CommonClientHandler::initialize(QMap<int, ClientHandler *> *clientsMap, ProcessingSystem *processingSystem, DataParser *dataParser, Logger *logger)
|
||||
void CommonClientHandler::initialize(QMap<int, ClientHandler *> *clientsMap, ProcessingSystem *processingSystem, DataParser *dataParser)
|
||||
{
|
||||
this->clientsMap = clientsMap;
|
||||
this->processingSystem = processingSystem;
|
||||
this->dataParser = dataParser;
|
||||
this->logger = logger;
|
||||
|
||||
connect(this,&CommonClientHandler::sigSendToLogger,logger,&Logger::addTextToLogger,Qt::AutoConnection);
|
||||
}
|
||||
|
||||
void CommonClientHandler::sendNewVersionListToAllClient()
|
||||
|
||||
@@ -15,8 +15,7 @@ public:
|
||||
explicit CommonClientHandler(QObject *parent = nullptr);
|
||||
void initialize(QMap<int, ClientHandler*> *clientsMap,
|
||||
ProcessingSystem *processingSystem,
|
||||
DataParser *dataParser,
|
||||
Logger *logger);
|
||||
DataParser *dataParser);
|
||||
|
||||
void sendNewVersionListToAllClient();
|
||||
void sendCurrentVersionToAllClient();
|
||||
@@ -32,8 +31,6 @@ private:
|
||||
QMap<int, ClientHandler*> *clientsMap;
|
||||
ProcessingSystem *processingSystem;
|
||||
DataParser *dataParser;
|
||||
Logger *logger;
|
||||
|
||||
};
|
||||
|
||||
#endif // COMMONCLIENTHANDLER_H
|
||||
|
||||
@@ -2,10 +2,16 @@
|
||||
|
||||
#include <QThread>
|
||||
|
||||
|
||||
Logger::Logger()
|
||||
{
|
||||
//this->listWidget = widget;
|
||||
connect(this,&Logger::sigAddToLogger, this, &Logger::handleLog,Qt::QueuedConnection);
|
||||
createDirectory();
|
||||
}
|
||||
|
||||
Logger &Logger::instance()
|
||||
{
|
||||
static Logger logger;
|
||||
return logger;
|
||||
}
|
||||
|
||||
Logger::~Logger()
|
||||
@@ -13,22 +19,79 @@ Logger::~Logger()
|
||||
|
||||
}
|
||||
|
||||
void Logger::setTypeLog(QString type)
|
||||
void Logger::setLoggingType(LoggingType type)
|
||||
{
|
||||
typeLogger = type;
|
||||
this->loggingType = type;
|
||||
}
|
||||
|
||||
void Logger::addTextToLogger(QString msg)
|
||||
void Logger::log(QString message, LogLevel level)
|
||||
{
|
||||
if(typeLogger == "widget")
|
||||
emit sigAddToLogger(message,level);
|
||||
}
|
||||
|
||||
void Logger::setLogFile(QString filePath)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
if (logFile.isOpen())
|
||||
{
|
||||
emit sigSendTextToLogger(msg);
|
||||
logFile.close();
|
||||
}
|
||||
else if (typeLogger == "console")
|
||||
|
||||
logFile.setFileName(filePath);
|
||||
logFile.open(QIODevice::WriteOnly | QIODevice::Append);
|
||||
}
|
||||
|
||||
void Logger::setLogToFile(bool flag)
|
||||
{
|
||||
isLogToFile = flag;
|
||||
if (flag)
|
||||
{
|
||||
//qDebug() << msg;
|
||||
}else
|
||||
{
|
||||
emit sigSendTextToLogger(msg);
|
||||
QString filePath = logFolderPath + "/" + "log " + QDateTime::currentDateTime().toString("dd-MM-yyyy")+".txt";
|
||||
setLogFile(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::handleLog(QString msg, LogLevel logLevel)
|
||||
{
|
||||
QString level;
|
||||
|
||||
switch (logLevel)
|
||||
{
|
||||
case INFO: level = "INFO"; break;
|
||||
case WARNING: level = "WARNING"; break;
|
||||
case ERROR: level = "ERROR"; break;
|
||||
case CRITICAL: level = "CRITICAL"; break;
|
||||
}
|
||||
|
||||
QString timeStamp = QDateTime::currentDateTime().toString("hh:mm:ss");
|
||||
QString message = timeStamp + " " + level + " " + msg;
|
||||
|
||||
|
||||
if (loggingType == LoggingType::WIDGET)
|
||||
{
|
||||
emit sigLogToWidget(message);
|
||||
}
|
||||
else if(loggingType == LoggingType::CONSOLE)
|
||||
{
|
||||
qDebug() << message;
|
||||
}
|
||||
|
||||
if(isLogToFile)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
if (logFile.isOpen())
|
||||
{
|
||||
QTextStream stream(&logFile);
|
||||
stream << message << "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::createDirectory()
|
||||
{
|
||||
QString directoryPath = logFolderPath;
|
||||
QDir dir(directoryPath);
|
||||
|
||||
if(!dir.exists()) dir.mkdir(".");
|
||||
|
||||
}
|
||||
|
||||
@@ -1,25 +1,58 @@
|
||||
#ifndef LOGGER_H
|
||||
#define LOGGER_H
|
||||
|
||||
#include <QPlainTextEdit>
|
||||
#include <QDateTime>
|
||||
#include <QMutex>
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include "Systems/tools.h"
|
||||
|
||||
enum LogLevel
|
||||
{
|
||||
INFO,
|
||||
WARNING,
|
||||
ERROR,
|
||||
CRITICAL
|
||||
};
|
||||
|
||||
enum LoggingType
|
||||
{
|
||||
WIDGET,
|
||||
CONSOLE,
|
||||
TOFILE
|
||||
};
|
||||
|
||||
class Logger : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Logger();
|
||||
Logger();
|
||||
static Logger& instance();
|
||||
~Logger();
|
||||
void setTypeLog(QString type);
|
||||
void setWidget(QPlainTextEdit * widget);
|
||||
void setLoggingType(LoggingType type);
|
||||
void log(QString message,LogLevel level = INFO);
|
||||
void setLogFile(QString filePath);
|
||||
void setLogToFile(bool flag);
|
||||
|
||||
public slots:
|
||||
void addTextToLogger(QString msg);
|
||||
void handleLog(QString msg,LogLevel logLevel = INFO);
|
||||
|
||||
signals:
|
||||
void sigSendTextToLogger(QString msg);
|
||||
void sigAddToLogger(QString msg, LogLevel logLevel = INFO);
|
||||
void sigLogToWidget(QString message);
|
||||
|
||||
private:
|
||||
//ServerLMSWidget *listWidget;
|
||||
QString typeLogger;
|
||||
QString msg;
|
||||
QFile logFile;
|
||||
LoggingType loggingType;
|
||||
QMutex mutex;
|
||||
bool isLogToFile;
|
||||
|
||||
void createDirectory();
|
||||
};
|
||||
|
||||
#endif // LOGGER_H
|
||||
|
||||
@@ -13,7 +13,6 @@ ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateControlle
|
||||
|
||||
void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataParser,
|
||||
CommonClientHandler *commonClientHandler,
|
||||
Logger *logger,
|
||||
UpdateController *updateController,
|
||||
ChatSystem *chatSystem)
|
||||
{
|
||||
@@ -27,9 +26,8 @@ void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataPar
|
||||
|
||||
connect(this,&ProcessingSystem::sigStatusTasksAMMofTraineeChanged,commonClientHandler, &CommonClientHandler::slot_StatusTasksAMMofTraineeChanged,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigStatusTasksFIMofTraineeChanged,commonClientHandler, &CommonClientHandler::slot_StatusTasksFIMofTraineeChanged,Qt::AutoConnection);
|
||||
|
||||
connect(this,&ProcessingSystem::sigUpdateListClients,server,&MultiThreadServer::updateClientList,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigSetData,updateController,&UpdateController::setDataInfo,Qt::AutoConnection);
|
||||
connect(this,&ProcessingSystem::sigLogMessage,logger,&Logger::addTextToLogger,Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
void ProcessingSystem::processingClientAutorization(ClientHandler *client, ClientAutorization clientAutorization)
|
||||
@@ -40,7 +38,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
||||
client->sendXmlAnswer(arrayAnswer);
|
||||
|
||||
QString str = QString(arrayAnswer);
|
||||
emit sigLogMessage("To Client: " + str);
|
||||
Logger::instance().log("To Client: " + str);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -108,7 +106,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
||||
client->sendXmlAnswer(arrayAnswer);
|
||||
|
||||
QString str = QString(arrayAnswer);
|
||||
emit sigLogMessage("To Client: " + str);
|
||||
Logger::instance().log("To Client: " + str);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -498,6 +496,7 @@ void ProcessingSystem::processingClientQueryTasksXML(ClientHandler *client, Clie
|
||||
{
|
||||
nameFile = tasksFIMfileName;
|
||||
pathFile = updateController->getPathAdditionalFile(nameFile);
|
||||
Logger::instance().log(pathFile);
|
||||
client->sendFileBlock(pathFile);
|
||||
client->sendPacketType(PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_FIM);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ public:
|
||||
void initialize(MultiThreadServer *server,
|
||||
DataParser* dataParser,
|
||||
CommonClientHandler *commonClientServer,
|
||||
Logger *logger,
|
||||
UpdateController *updateComtroller,
|
||||
ChatSystem *chatSystem);
|
||||
|
||||
@@ -62,7 +61,6 @@ signals:
|
||||
void sigListsInstructorsTraineesChanged();
|
||||
void sigStatusTasksAMMofTraineeChanged(int trainee_id);
|
||||
void sigStatusTasksFIMofTraineeChanged(int trainee_id);
|
||||
void sigLogMessage(QString log);
|
||||
void sigAddToMessanger(QString login,QString text);
|
||||
void sigSetData(DataInfo *dataInfo);
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ void RecognizeSystem::recognize()
|
||||
stream.commitTransaction();
|
||||
//if(!) continue;
|
||||
//ПОЛУЧЕНИЕ САМОГО ФАЙЛА
|
||||
qDebug() << (Tools::getTime() + "AfterRead size and path BytesAvailable: " + socket->bytesAvailable());
|
||||
Logger::instance().log("AfterRead size and path BytesAvailable: " + QString::number(socket->bytesAvailable()));
|
||||
|
||||
qint64 readSize = 65535;
|
||||
forever
|
||||
@@ -148,7 +148,7 @@ void RecognizeSystem::recognize()
|
||||
if(fileSize < readSize)
|
||||
{
|
||||
readSize = fileSize;
|
||||
qDebug() << "LastPackage: " << readSize;
|
||||
Logger::instance().log("LastPackage: " + QString::number(readSize));
|
||||
}
|
||||
|
||||
socket->waitForReadyRead(20);
|
||||
@@ -165,7 +165,7 @@ void RecognizeSystem::recognize()
|
||||
if(fileSize == 0) break;
|
||||
}
|
||||
|
||||
qDebug() << (Tools::getTime() + "File loaded");
|
||||
Logger::instance().log("File loaded");
|
||||
|
||||
//ОЧИСТКА ПОСЛЕ ПЕРЕДАЧИ
|
||||
fileSize = 0;
|
||||
@@ -225,7 +225,7 @@ void RecognizeSystem::recognize()
|
||||
if (file.exists())
|
||||
{
|
||||
file.remove(); //удаление файла, если он уже есть, но необходимо обновить
|
||||
qDebug() << Tools::getTime() + "Delete exist file: " + filePath;
|
||||
Logger::instance().log("Delete exist file: " + filePath);
|
||||
}
|
||||
|
||||
if (!file.open(QFile::Append))
|
||||
@@ -333,11 +333,10 @@ void RecognizeSystem::recognize()
|
||||
|
||||
}
|
||||
|
||||
QString logMessage = Tools::getTime() + " ";
|
||||
logMessage.append("Load from " + client->getLogin() + " ");
|
||||
QString logMessage = "Load from " + client->getLogin() + " ";
|
||||
logMessage.append(fileInfo.fileName());
|
||||
|
||||
emit sigSendToLogger(logMessage);
|
||||
Logger::instance().log(logMessage);
|
||||
|
||||
file.close();
|
||||
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
#include "sendsystem.h"
|
||||
|
||||
|
||||
SendSystem::SendSystem(QObject *parent) : QObject(parent)
|
||||
{
|
||||
isSendStopped = false;
|
||||
}
|
||||
|
||||
void SendSystem::initialize(DataParser *dataParser,Logger *logger)
|
||||
void SendSystem::initialize(DataParser *dataParser,QMutex *globalMutex)
|
||||
{
|
||||
this->dataParser = dataParser;
|
||||
this->logger = logger;
|
||||
|
||||
connect(this,&SendSystem::sigSendToLogger,logger,&Logger::addTextToLogger,Qt::AutoConnection);
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
void SendSystem::setClient(Client *client,QTcpSocket *socket)
|
||||
@@ -35,30 +33,35 @@ void SendSystem::sendMessageBlock(QString message)
|
||||
|
||||
void SendSystem::sendFileBlock(QString path)
|
||||
{
|
||||
qDebug() << "sendFileBlock thread: " << QThread::currentThreadId();
|
||||
|
||||
//qDebug() << "sendFileBlock thread: " << QThread::currentThreadId();
|
||||
Logger::instance().log("TRY LOCK MUTEX : " + client->getLogin(),LogLevel::WARNING);
|
||||
QMutexLocker locker(mutex);
|
||||
Logger::instance().log("LOCK MUTEX " + client->getLogin(),LogLevel::WARNING);
|
||||
QFile file(path);
|
||||
QFileInfo fileInfo(file);
|
||||
Logger::instance().log("OPEN FILE : " + client->getLogin() + " " + fileInfo.fileName());
|
||||
|
||||
if(isSendStopped)
|
||||
{ //Поведение на случай отключения клиента
|
||||
|
||||
file.close();
|
||||
Logger::instance().log("UNLOCK STOP MUTEX : " + client->getLogin(),LogLevel::ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
QDataStream stream(socket);
|
||||
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
||||
|
||||
fileSize = file.size();
|
||||
Logger::instance().log("size FILE :" + client->getLogin() + " " + QString::number(fileSize));
|
||||
|
||||
fileSize = fileInfo.size();
|
||||
|
||||
if(fileSize == 0){
|
||||
emit sigSendToLogger(Tools::getTime() + " WARNING! Zero size " + path);
|
||||
if (fileSize == 0)
|
||||
{
|
||||
Logger::instance().log("Client: " + client->getLogin() + " WARNING! Zero size " + fileInfo.fileName(),LogLevel::ERROR);
|
||||
Logger::instance().log(path,LogLevel::ERROR);
|
||||
Logger::instance().log("UNLOCK SIZE MUTEX : " + client->getLogin(),LogLevel::ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
stream << PacketType::TYPE_FILE; //Отправляем тип блока
|
||||
stream << path << fileSize;
|
||||
|
||||
@@ -77,14 +80,17 @@ void SendSystem::sendFileBlock(QString path)
|
||||
//emit sigSendToLogger(Tools::getTime() + " send file " + fileInfo.fileName());
|
||||
}
|
||||
|
||||
Logger::instance().log("Sended to : " + client->getLogin() + " : " + fileInfo.fileName());
|
||||
file.close();
|
||||
Logger::instance().log("CLOSE FILE : " + client->getLogin() + " " + fileInfo.fileName());
|
||||
countSend = 0;
|
||||
Logger::instance().log("UNLOCK MUTEX : " + client->getLogin(),LogLevel::WARNING);
|
||||
}
|
||||
|
||||
void SendSystem::sendFileBlockByteArray(QByteArray array, PacketType packetType)
|
||||
{
|
||||
qDebug() << "sendFileBlockByteArray thread: " << QThread::currentThreadId();
|
||||
|
||||
QMutexLocker locker(mutex);
|
||||
if(client->GETTYPE() == TypeClientAutorization::TYPE_QT_CLIENT ||
|
||||
client->GETTYPE() == TypeClientAutorization::TYPE_GUI)
|
||||
{
|
||||
@@ -94,7 +100,7 @@ void SendSystem::sendFileBlockByteArray(QByteArray array, PacketType packetType)
|
||||
fileSize = array.size();
|
||||
|
||||
if(fileSize == 0){
|
||||
emit sigSendToLogger(Tools::getTime() + " WARNING! Zero size ");
|
||||
Logger::instance().log(" WARNING! Zero size ",LogLevel::ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -123,6 +129,7 @@ void SendSystem::sendVersion()
|
||||
|
||||
void SendSystem::sendFileBlockWithRename(QString path, QString newName)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
qDebug() << "sendFileBlockWithRename thread: " << QThread::currentThreadId();
|
||||
|
||||
QDataStream stream(socket);
|
||||
@@ -133,7 +140,7 @@ void SendSystem::sendFileBlockWithRename(QString path, QString newName)
|
||||
fileSize = fileInfo.size();
|
||||
|
||||
if(fileSize == 0){
|
||||
emit sigSendToLogger(Tools::getTime() + " WARNING! Zero size " + path);
|
||||
Logger::instance().log("Client: " + client->getLogin() + " WARNING! Zero size " + fileInfo.fileName(),LogLevel::ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -160,7 +167,7 @@ void SendSystem::sendFileBlockWithRename(QString path, QString newName)
|
||||
countSend++;
|
||||
}
|
||||
|
||||
emit sigSendToLogger(Tools::getTime() + " send file " + fileInfo.fileName());
|
||||
Logger::instance().log("Send file " + fileInfo.fileName());
|
||||
}
|
||||
|
||||
file.close();
|
||||
@@ -194,6 +201,7 @@ void SendSystem::sendDeleteBlock(QString path)
|
||||
|
||||
void SendSystem::sendPacketType(PacketType packetType)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
if (client->GETTYPE() == TypeClientAutorization::TYPE_QT_CLIENT ||
|
||||
client->GETTYPE() == TypeClientAutorization::TYPE_GUI)
|
||||
{
|
||||
@@ -219,6 +227,7 @@ void SendSystem::sendHello()
|
||||
|
||||
void SendSystem::sendNotify(QString notify)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
qDebug() << "SendNotify thread: " << QThread::currentThreadId();
|
||||
auto answer = emit sigSendNotify(notify);//"END");
|
||||
sendXmlAnswer(answer);
|
||||
@@ -226,6 +235,7 @@ void SendSystem::sendNotify(QString notify)
|
||||
|
||||
void SendSystem::sendXmlAnswer(QByteArray array, PacketType packetType)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
qDebug() << "SendSystemThread: " << QThread::currentThreadId();
|
||||
if (client->GETTYPE() == TypeClientAutorization::TYPE_QT_CLIENT ||
|
||||
client->GETTYPE() == TypeClientAutorization::TYPE_GUI)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QtNetwork>
|
||||
#include <QMutex>
|
||||
|
||||
#include <Systems/Parsers/dataparser.h>
|
||||
#include <Systems/tools.h>
|
||||
@@ -12,7 +13,6 @@
|
||||
|
||||
class DataParser;
|
||||
class FileData;
|
||||
|
||||
class SendSystem : public QObject
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ class SendSystem : public QObject
|
||||
public:
|
||||
explicit SendSystem(QObject* parent = nullptr);
|
||||
|
||||
void initialize(DataParser* dataParser,Logger *logger);
|
||||
void initialize(DataParser* dataParser,QMutex *globalMutex);
|
||||
void setClient(Client* client,QTcpSocket *socket);
|
||||
void sendMessageBlock(QString message);
|
||||
void sendFileBlock(QString path);
|
||||
@@ -49,7 +49,6 @@ public slots:
|
||||
|
||||
signals:
|
||||
void sigLoadHash();
|
||||
void sigSendToLogger(QString message);
|
||||
QByteArray sigSendXMLmessage(QString loginFrom, QString loginTo, QString text, QString userType);
|
||||
QByteArray sigSendNotify(QString message);
|
||||
QByteArray sigSendVersion();
|
||||
@@ -58,9 +57,8 @@ private:
|
||||
Client *client;
|
||||
QTcpSocket* socket;
|
||||
DataParser* dataParser;
|
||||
Logger *logger;
|
||||
QMutex *mutex;
|
||||
quint64 fileSize;
|
||||
QMutex *mutex;
|
||||
int countSend;
|
||||
bool isSendStopped;
|
||||
TypeClientAutorization type;
|
||||
|
||||
@@ -7,12 +7,6 @@ void Tools::printTime()
|
||||
qDebug() << QTime::currentTime().toString("hh:mm:ss.zzz");
|
||||
}
|
||||
|
||||
|
||||
QString Tools::getTime()
|
||||
{
|
||||
return QTime::currentTime().toString("hh:mm:ss.zzz");
|
||||
}
|
||||
|
||||
QString Tools::createLocalPath(QString path)
|
||||
{
|
||||
qint8 pos = path.indexOf(applicationFolderName);
|
||||
|
||||
@@ -28,6 +28,7 @@ static const QString buildDataPath = "/Application/" + projectFolderName + "/RRJ
|
||||
static const QString tasksAMMfileName = "/docs.xml"; //"/tasksAmm.xml";
|
||||
static const QString tasksFIMfileName = "/tasksFIM.xml";
|
||||
static const QString clientHash = staticDataFolderName + "/clientHash.xml";
|
||||
static const QString logFolderPath = "log";
|
||||
|
||||
static const QString baseNameVersion = "base";//может вынести комманды куда нибудь?
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ UpdateController::UpdateController(QObject *parent) :
|
||||
{
|
||||
buildPath = QDir::currentPath() + "/" + applicationFolderName;
|
||||
sharedDataPath = QDir::currentPath() + "/" + sharedDataFolderName;
|
||||
emit sigLogMessage(buildPath);
|
||||
Logger::instance().log(buildPath);
|
||||
qDebug() << hashFileName;
|
||||
}
|
||||
|
||||
void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataParser *dataParser,AssetsManager *assetManager,Logger *logger)
|
||||
void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataParser *dataParser,AssetsManager *assetManager)
|
||||
{
|
||||
this->commonClientHandler = commonClientHandler;
|
||||
this->dataParser = dataParser;
|
||||
@@ -31,8 +31,6 @@ void UpdateController::initialize(CommonClientHandler *commonClientHandler,DataP
|
||||
return;
|
||||
}
|
||||
|
||||
connect(this,&UpdateController::sigLogMessage,logger,&Logger::addTextToLogger,Qt::AutoConnection);
|
||||
|
||||
calculateFullHash();
|
||||
currentStreamingPath = assetManager->setVersion("base"); //TODO: сохрнаять предыдущую версию и загружать ее при включении
|
||||
setUpCurrentServerHash();
|
||||
@@ -82,20 +80,19 @@ void UpdateController::compareFiles(ClientHandler* handler, QByteArray array)
|
||||
void UpdateController::showHash()
|
||||
{
|
||||
for(FileData& str : serverDataList){
|
||||
emit sigLogMessage(str.hash);
|
||||
Logger::instance().log(str.hash);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateController::calculateFullHash()
|
||||
{
|
||||
qDebug() << "Calculate hash...";
|
||||
Logger::instance().log("Calculate hash...");
|
||||
commonClientHandler->slot_sendPacketToAllClients(PacketType::BUSY);
|
||||
auto *list = calculateHash(buildPath);
|
||||
saveHash(buildHashName,list);
|
||||
calculateSharedHash();
|
||||
emit sigLogMessage("Calculate hash complete");
|
||||
Logger::instance().log("Calculate hash complete");
|
||||
commonClientHandler->slot_sendPacketToAllClients(PacketType::FREE);
|
||||
qDebug() << "Calculate complete...";
|
||||
}
|
||||
|
||||
void UpdateController::calculateFullHashWithSetup()
|
||||
@@ -175,7 +172,7 @@ QList<FileData>* UpdateController::loadHash(QString filename)
|
||||
xmlReader.readNextStartElement();
|
||||
}
|
||||
|
||||
emit sigLogMessage("Hash load from file ");
|
||||
Logger::instance().log("Hash load from file ");
|
||||
|
||||
return files;
|
||||
|
||||
@@ -194,8 +191,8 @@ void UpdateController::calculateSize()
|
||||
iterator.next();
|
||||
}
|
||||
|
||||
emit sigLogMessage("Full size: ");
|
||||
emit sigLogMessage(QString::number(total));
|
||||
Logger::instance().log("Full size: ");
|
||||
Logger::instance().log(QString::number(total));
|
||||
}
|
||||
|
||||
QString UpdateController::getCommands()
|
||||
@@ -272,14 +269,13 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
|
||||
if(forSend->length() > 0) //формирование сообщения об обновлении
|
||||
{
|
||||
QString log;
|
||||
log.append(Tools::getTime());
|
||||
log.append(" Client: " + handler->getClient()->getLogin());
|
||||
log.append(" Need updates: ");
|
||||
log.append(QString::number(forSend->length()));
|
||||
log.append(" objects");
|
||||
fileSendList = *forSend;
|
||||
|
||||
emit sigLogMessage(log);
|
||||
Logger::instance().log(log);
|
||||
//printFileList(*forSend);
|
||||
|
||||
handler->sendMessageBlock(log);
|
||||
@@ -288,16 +284,14 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
|
||||
else
|
||||
{
|
||||
QString log;
|
||||
log.append(Tools::getTime());
|
||||
log.append(" Client: " + handler->getClient()->getLogin());
|
||||
log.append(" no update required");
|
||||
emit sigLogMessage(log);
|
||||
Logger::instance().log(log);
|
||||
handler->sendMessageBlock(log);
|
||||
}
|
||||
|
||||
if(forDelete->length() > 0){
|
||||
QString log;
|
||||
log.append(Tools::getTime());
|
||||
log.append(" Client: " + handler->getClient()->getLogin());
|
||||
|
||||
log.append(" Need delete: ");
|
||||
@@ -305,7 +299,7 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
|
||||
log.append(" objects");
|
||||
fileDeleteList = *forDelete;
|
||||
|
||||
emit sigLogMessage(log);
|
||||
Logger::instance().log(log);
|
||||
//printFileList(*forDelete);
|
||||
handler->sendMessageBlock(log);
|
||||
needUpdate = true;
|
||||
@@ -313,11 +307,10 @@ bool UpdateController::checkNeedUpdate(ClientHandler *handler)
|
||||
else
|
||||
{
|
||||
QString log;
|
||||
log.append(Tools::getTime());
|
||||
log.append(" Client: " + handler->getClient()->getLogin());
|
||||
log.append(" no delete required");
|
||||
|
||||
emit sigLogMessage(log);
|
||||
Logger::instance().log(log);
|
||||
handler->sendMessageBlock(log);
|
||||
}
|
||||
|
||||
@@ -542,7 +535,7 @@ void UpdateController::printFileList(QList<FileData> fileData)
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
auto next = iterator.next();
|
||||
emit sigLogMessage(next.path);
|
||||
Logger::instance().log(next.path);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class UpdateController : public QObject
|
||||
public:
|
||||
|
||||
explicit UpdateController(QObject *parent = 0);
|
||||
void initialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager,Logger *logger);
|
||||
void initialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager);
|
||||
void compareFiles(ClientHandler* handler, QByteArray array);
|
||||
void showHash();
|
||||
void calculateFullHash();
|
||||
@@ -68,7 +68,6 @@ public slots:
|
||||
void setUpCurrentServerHash();
|
||||
|
||||
signals:
|
||||
void sigLogMessage(QString message);
|
||||
void sigErrorRequired(int code);
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user