#pragma once #include #include #include #include #include "db/AccountInfo.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; QTimer *m_pollTimer = nullptr; NetworkService *m_network = nullptr; void clearAll(); void updateEventThread(const QString &key, const EventInfo &event, const QString &result); void startThreadForTask(const AccountInfo &account, const EventInfo &event); void processNextTask(const QString &deviceId); };