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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user