mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
в GUI приходит ответ с перечнем ПП от Сервера
This commit is contained in:
@@ -15,6 +15,8 @@ QObject(parent)
|
||||
dbAnswer = new DBAnswerParser;
|
||||
dbAnswer->initialize(this);
|
||||
|
||||
docsAnswer = new DocsAnswerParser;
|
||||
|
||||
processParser = new ProcessParser;
|
||||
processParser->initialize(processingSystem);
|
||||
|
||||
@@ -120,9 +122,18 @@ ProcessParser *DataParser::getProcessParser() const
|
||||
return processParser;
|
||||
}
|
||||
|
||||
DocsAnswerParser *DataParser::getDocsAnswerParser() const
|
||||
{
|
||||
return docsAnswer;
|
||||
}
|
||||
|
||||
DataParser::~DataParser()
|
||||
{
|
||||
|
||||
delete clientAnswer;
|
||||
delete dbAnswer;
|
||||
delete docsAnswer;
|
||||
delete processParser;
|
||||
delete mutex;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "Systems/logger.h"
|
||||
#include "Systems/Parsers/clientanswerparser.h"
|
||||
#include "dbanswerparser.h"
|
||||
#include "docsanswerparser.h"
|
||||
#include "processparser.h"
|
||||
#include "serverlmswidget.h"
|
||||
|
||||
@@ -23,6 +24,7 @@ class ClientHandler;
|
||||
class AssetsManager;
|
||||
class ClientAnswerParser;
|
||||
class DBAnswerParser;
|
||||
class DocsAnswerParser;
|
||||
class ProcessParser;
|
||||
|
||||
class DataParser : public QObject
|
||||
@@ -41,6 +43,7 @@ public:
|
||||
ClientAnswerParser *ClientAnswer() const;
|
||||
DBAnswerParser *DbAnswer() const;
|
||||
ProcessParser *getProcessParser() const;
|
||||
DocsAnswerParser *getDocsAnswerParser() const;
|
||||
|
||||
signals:
|
||||
void sigLogMessage(QString log);
|
||||
@@ -53,6 +56,7 @@ private:
|
||||
AssetsManager *assetsManager;
|
||||
ClientAnswerParser *clientAnswer;
|
||||
DBAnswerParser *dbAnswer;
|
||||
DocsAnswerParser* docsAnswer;
|
||||
ProcessParser *processParser;
|
||||
QByteArray readTempFile();
|
||||
};
|
||||
|
||||
29
ServerLMS/Systems/Parsers/docsanswerparser.cpp
Normal file
29
ServerLMS/Systems/Parsers/docsanswerparser.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#include "docsanswerparser.h"
|
||||
#include "docsupdater.h"
|
||||
|
||||
DocsAnswerParser::DocsAnswerParser(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QByteArray DocsAnswerParser::listSubProc(QList<SubProc> list)
|
||||
{
|
||||
QDomDocument commonDOM;
|
||||
if(! Tools::loadXMLtoDOM(":/resources/blankXML/ListSubProc.xml", &commonDOM))
|
||||
return QByteArray();
|
||||
|
||||
QDomNode listNode = commonDOM.namedItem("ListSubProc");
|
||||
|
||||
for(SubProc subProc : list)
|
||||
{
|
||||
QDomNode subProcNode = commonDOM.createElement("SubProc");
|
||||
listNode.appendChild(subProcNode);
|
||||
subProcNode.toElement().setAttribute("dmCode", subProc.dmCode);
|
||||
subProcNode.toElement().setAttribute("title", subProc.title);
|
||||
subProcNode.toElement().setAttribute("canplay", DocsUpdater::buildCanplay(subProc.modeList));
|
||||
}
|
||||
|
||||
Tools::saveDOMtoXML("ListSubProc.xml", &commonDOM);
|
||||
|
||||
return commonDOM.toByteArray();
|
||||
}
|
||||
23
ServerLMS/Systems/Parsers/docsanswerparser.h
Normal file
23
ServerLMS/Systems/Parsers/docsanswerparser.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#ifndef DOCSANSWERPARSER_H
|
||||
#define DOCSANSWERPARSER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
#include "docsupdater.h"
|
||||
|
||||
struct SubProc;
|
||||
|
||||
class DocsAnswerParser : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DocsAnswerParser(QObject *parent = nullptr);
|
||||
|
||||
public:
|
||||
QByteArray listSubProc(QList<SubProc> list);
|
||||
|
||||
signals:
|
||||
|
||||
};
|
||||
|
||||
#endif // DOCSANSWERPARSER_H
|
||||
@@ -44,6 +44,11 @@ void ProcessParser::slot_read(ClientHandler *client, QByteArray array)
|
||||
|
||||
queryTasksXML(xmlReader,client);
|
||||
}
|
||||
else if(xmlReader.name() == "QueryListSubProc")
|
||||
{//Запрос списка подпроцедур
|
||||
|
||||
queryListSubProc(xmlReader,client);
|
||||
}
|
||||
else if(xmlReader.name() == "ClientMessage")
|
||||
{//Сообщение от клиента
|
||||
|
||||
@@ -504,6 +509,24 @@ void ProcessParser::queryTasksXML(QXmlStreamReader &xmlReader, ClientHandler *cl
|
||||
processingSystem->processingClientQueryTasksXML(client, clientQueryTasksXML);
|
||||
}
|
||||
|
||||
void ProcessParser::queryListSubProc(QXmlStreamReader &xmlReader, ClientHandler *client)
|
||||
{
|
||||
QString dmCode = "";
|
||||
|
||||
/*Перебираем все атрибуты тега*/
|
||||
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes())
|
||||
{
|
||||
QString name = attr.name().toString();
|
||||
QString value = attr.value().toString();
|
||||
//addTextToLogger(name + ": " + value);
|
||||
|
||||
if(name == "dmCode")
|
||||
dmCode = value;
|
||||
}
|
||||
|
||||
processingSystem->processingClientQueryListSubProc(client, dmCode);
|
||||
}
|
||||
|
||||
void ProcessParser::clientMessage(QXmlStreamReader &xmlReader,ClientHandler *client)
|
||||
{
|
||||
ClientMessage clientMessage;
|
||||
|
||||
@@ -29,6 +29,7 @@ private:
|
||||
void toClientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||
void queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, QByteArray array = QByteArray());
|
||||
void queryTasksXML(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||
void queryListSubProc(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||
void clientMessage(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||
void clientNotify(QXmlStreamReader &xmlReader,ClientHandler *client);
|
||||
void clientDataInfo(QXmlStreamReader &xmlReader, ClientHandler *client);
|
||||
|
||||
Reference in New Issue
Block a user