1
0
forked from BRT/arc
arc/services/EventHandler.h
trnsmkot 791eeeccd1 Refactor and enhance device and event handling logic
Refactored `DeviceScreener`, `NetworkService`, and event-related logic for improved maintainability and flexibility. Introduced `EventHandler` for thread management and made changes to include configurable URLs via `config.ini`. Modified database schema to support device-level event linking.
2025-05-22 21:33:25 +07:00

37 lines
641 B
C++

#pragma once
#include <QMap>
#include <QObject>
#include <QTimer>
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 checkAndRestart(); // вызывается по таймеру
private:
bool m_running = true;
QMap<QString, QThread *> m_threads;
QMap<QString, QTimer *> m_timers;
QTimer *m_checkTimer = nullptr;
QStringList m_devices;
void clearAll();
void startThreadForKey(const QString &key);
};