Files
RRJServer/ServerLMS/Systems/docsupdater.h

55 lines
1.3 KiB
C++

#ifndef DOCSUPDATER_H
#define DOCSUPDATER_H
#include <QObject>
#include "updatecontroller.h"
#include "module.h"
struct SubProc
{
QString dmCode;
QString title;
ModeList modeList;
};
class DocsUpdater : public QObject
{
Q_OBJECT
public:
DocsUpdater(UpdateController* updateController, QObject *parent = nullptr);
~DocsUpdater();
public:
void lockAccessToDocsXML();
void unLockAccessToDocsXML();
QList<SubProc> getListSubProcForDMcode(QString dmCode);
bool updateDocsXML();
private:
void domElementParserAMM(QDomElement element, Module* moduleParent);
void deleteAllModulsAMM();
ModeList parseCanplay(QString canplay);
bool processingScenXML(const QString dmCode, QString& canplay, QList<SubProc>& listSubProc);
void selectSubProc(QDomElement& modeElement, QList<SubProc>& listSubProc);
DM* getDMmoduleByDMcode(QString dmCode);
private:
UpdateController* updateController;
QMutex mtxAccess;
bool flagStop;
QList<Module*> listAllModulesAMM; //?
QList<TaskAmmFim> listTasksAMM; //?
QMap<QString, DM*> DMmodulesMap; //общий (линейный) словарь всех DM-модулей
QMap<QString, QList<SubProc>> listSubProcMap; //словарь подпроцедур для всех DM-модулей
};
#endif // DOCSUPDATER_H