#ifndef DOCSUPDATER_H #define DOCSUPDATER_H #include #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 getListSubProcForDMcode(QString dmCode); bool updateDocsXML(); static ModeList parseCanplay(QString canplay); static QString buildCanplay(ModeList modeList); private: void domElementParserAMM(QDomElement element, Module* moduleParent); void deleteAllModulsAMM(); bool processingScenXML(const QString dmCode, QString& canplay, QList& listSubProc); void selectSubProc(QDomElement& modeElement, QList& listSubProc); DM* getDMmoduleByDMcode(QString dmCode); private: UpdateController* updateController; QMutex mtxAccess; bool flagStop; QList listAllModulesAMM; //? QList listTasksAMM; //? QMap DMmodulesMap; //общий (линейный) словарь всех DM-модулей QMap> listSubProcMap; //словарь подпроцедур для всех DM-модулей }; #endif // DOCSUPDATER_H