#ifndef AXSCRIPTMANAGER_H #define AXSCRIPTMANAGER_H #include #include #include #include struct ExtensionFile; class AxScriptEngine; class AdaptixWidget; class Agent; struct DataMenuFileBrowser { QString agentId; QString path; QString name; QString type; }; struct DataMenuDownload { QString agentId; QString fileId; QString path; QString state; }; class AxScriptManager : public QObject { Q_OBJECT AdaptixWidget* mainWidget = nullptr; AxScriptEngine* mainScript = nullptr; QMap scripts; QMap listeners_scripts; QMap agents_scripts; public: AxScriptManager(AdaptixWidget* main_widget, QObject *parent = nullptr); ~AxScriptManager() override; QJSEngine* MainScriptEngine(); void ResetMain(); void Clear(); AdaptixWidget* GetAdaptix() const; QMap GetAgents() const; QJSEngine* GetEngine(const QString &name); QStringList ListenerScriptList(); void ListenerScriptAdd(const QString &name, const QString &ax_script); QJSEngine* ListenerScriptEngine(const QString &name); QStringList AgentScriptList(); void AgentScriptAdd(const QString &name, const QString &ax_script); QJSEngine* AgentScriptEngine(const QString &name); QJSValue AgentScriptExecute(const QString &name, const QString &code); QStringList ScriptList(); bool ScriptAdd(ExtensionFile* ext); void ScriptRemove(const ExtensionFile &ext); void GlobalScriptLoad(const QString &path); void GlobalScriptUnload(const QString &path); void RegisterCommandsGroup(const CommandsGroup &group, const QStringList &listeners, const QStringList &agents, const QList &os); int AddMenuSession(QMenu* menu, const QString &menuType, QStringList agentIds) const; int AddMenuFileBrowser(QMenu* menu, QVector files) const; int AddMenuDownload(QMenu* menu, const QString &menuType, QVector files) const; void emitAllEventTestClick(); public slots: void consolePrintMessage(const QString &message); void consolePrintError(const QString &message); }; #endif