mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Индикация и возм обновл docs из ГУИ
This commit is contained in:
@@ -141,3 +141,30 @@ void CommonClientHandler::slot_sendTaskToClient(QString fullNameClient,QString t
|
||||
}
|
||||
}
|
||||
|
||||
void CommonClientHandler::slot_DocsChanged()
|
||||
{
|
||||
//Проходим все открытые сокеты
|
||||
foreach(int idSocket, clientsMap->keys())
|
||||
{
|
||||
ClientHandler *handler = clientsMap->value(idSocket);
|
||||
|
||||
//Проверяем, есть ли клиенты TYPE_GUI
|
||||
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
|
||||
{//Отправляем этому клиенту оповещение об изменении docs.xml
|
||||
|
||||
/*
|
||||
ClientQueryTasksXML clientQueryTasksXML;
|
||||
clientQueryTasksXML.Type = "amm";
|
||||
processingSystem->processingClientQueryTasksXML(handler, clientQueryTasksXML);
|
||||
*/
|
||||
|
||||
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
|
||||
}
|
||||
|
||||
if(handler->getClient()->getClientType() == TypeClientAutorization::TYPE_UNITY_CLIENT)
|
||||
{
|
||||
handler->sendPacketType(PacketType::TYPE_XMLANSWER_DOCS_CHANGED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@ public:
|
||||
void slot_sendPacketToAllClients(PacketType packetType);
|
||||
bool slotSendMessage(QString loginFrom, QString loginTo, QString text);
|
||||
void slot_sendTaskToClient(QString fullNameClient, QString textTask);
|
||||
|
||||
void slot_DocsChanged();
|
||||
signals:
|
||||
void sigSendToLogger(QString text);
|
||||
private:
|
||||
|
||||
@@ -16,6 +16,16 @@ DocsUpdater::~DocsUpdater()
|
||||
|
||||
}
|
||||
|
||||
void DocsUpdater::lockAccessToDocs()
|
||||
{
|
||||
mtxAccess.lock();
|
||||
}
|
||||
|
||||
void DocsUpdater::unLockAccessToDocs()
|
||||
{
|
||||
mtxAccess.unlock();
|
||||
}
|
||||
|
||||
bool DocsUpdater::slot_update()
|
||||
{
|
||||
QMutexLocker locker(&mtxAccess);
|
||||
@@ -39,6 +49,7 @@ bool DocsUpdater::slot_update()
|
||||
if(! Tools::saveDOMtoXML(pathDocsFile, &docTasksDOM))
|
||||
return false;
|
||||
|
||||
//emit signal_DocsChanged();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@ class DocsUpdater : public QObject
|
||||
public:
|
||||
DocsUpdater(UpdateController* updateController, QObject *parent = nullptr);
|
||||
~DocsUpdater();
|
||||
public:
|
||||
void lockAccessToDocs();
|
||||
void unLockAccessToDocs();
|
||||
|
||||
public slots:
|
||||
bool slot_update();
|
||||
|
||||
@@ -3,13 +3,15 @@
|
||||
|
||||
#include <clienthandler.h>
|
||||
|
||||
ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent):
|
||||
ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, DocsUpdater* docsUpdater, QObject *parent):
|
||||
QObject(parent),
|
||||
updateController(nullptr),
|
||||
docsUpdater(nullptr),
|
||||
providerDBLMS(nullptr)
|
||||
{
|
||||
this->providerDBLMS = providerDBLMS;
|
||||
this->updateController = updateController;
|
||||
this->docsUpdater = docsUpdater;
|
||||
}
|
||||
|
||||
void ProcessingSystem::initialize(MultiThreadServer *server, DataParser *dataParser,
|
||||
@@ -514,8 +516,10 @@ void ProcessingSystem::processingClientQueryTasksXML(ClientHandler *client, Clie
|
||||
{
|
||||
nameFile = tasksAMMfileName;
|
||||
pathFile = updateController->getPathAdditionalFile(nameFile);
|
||||
docsUpdater->lockAccessToDocs();
|
||||
client->sendFileBlock(pathFile);
|
||||
client->sendPacketType(PacketType::TYPE_XMLANSWER_QUERY_TASKS_XML_AMM);
|
||||
docsUpdater->unLockAccessToDocs();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
//#include "instructorsandtraineeswidget.h"
|
||||
#include "chatsystem.h"
|
||||
#include "providerdblms.h"
|
||||
#include "docsupdater.h"
|
||||
|
||||
class SendSystem;
|
||||
class ServerLMSWidget;
|
||||
@@ -24,7 +25,7 @@ class ProcessingSystem : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent = nullptr);
|
||||
explicit ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, DocsUpdater* docsUpdater, QObject *parent = nullptr);
|
||||
|
||||
void initialize(MultiThreadServer *server,
|
||||
DataParser* dataParser,
|
||||
@@ -70,6 +71,7 @@ private:
|
||||
MultiThreadServer *server;
|
||||
DataParser *dataParser;
|
||||
UpdateController *updateController;
|
||||
DocsUpdater* docsUpdater;
|
||||
ProviderDBLMS* providerDBLMS;
|
||||
ChatSystem *chatSystem;
|
||||
void sendTaskListToUnity(ClientHandler *client);
|
||||
|
||||
Reference in New Issue
Block a user