#pragma once #include #include #include #include #include "db/MaterialInfo.h" #include "db/EventInfo.h" class NetworkService; class EventHandler final : public QObject { Q_OBJECT public: explicit EventHandler(QObject *parent = nullptr); ~EventHandler() override; public slots: void start(); void stop(); signals: void finished(); private slots: void onTasksReceived(const QJsonArray &tasks); private: bool m_running = true; QMap m_threads; QMap m_timers; QMap m_screenshots; // deviceId → скриншот от скрипта QTimer *m_pollTimer = nullptr; NetworkService *m_network = nullptr; void clearAll(); void updateEventThread(const QString &key, const EventInfo &event, const QString &result); void startThreadForTask(const MaterialInfo &account, const EventInfo &event); void processNextTask(const QString &deviceId); };