Files
RRJServer/LibServer/Systems/docsupdater.h
2026-02-09 11:30:52 +03:00

50 lines
1.3 KiB
C++

#ifndef DOCSUPDATER_H
#define DOCSUPDATER_H
#include <QObject>
#include "updatecontroller.h"
#include "module.h"
class DocsUpdater : public QObject
{
Q_OBJECT
public:
DocsUpdater(UpdateController* updateController, QObject *parent = nullptr);
~DocsUpdater();
public:
void lockAccessToDocsXML();
void unLockAccessToDocsXML();
QList<SubProc> getListSubProcForDMcode(QString dmCode);
public slots:
bool slot_updateDocsXML();
private:
void domElementParserAMM(QDomElement element, Module* moduleParent);
void deleteAllModulsAMM();
bool processingScenXML(const QString dmCode, QString& canplay, QList<SubProc>& listSubProc);
void selectSubProc(QDomElement& modeElement, QList<SubProc>& listSubProc);
DM* getDMmoduleByDMcode(QString dmCode);
signals:
void signal_DocsChanged();
void signal_UpdateDocsCompleted();
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