1
0
forked from BRT/arc
arc/services/EventHandler.h
slava 6e9b7c2b6e Implement Event Type Handling and Status Updates
Added handling for event types (Balance, Phone) and respective processing logic in EventHandler. Introduced support for tracking and updating event statuses both locally and through network APIs. Enhanced data integrity and clarity by expanding the EventInfo model and associated database management.
2025-06-03 22:02:29 +07:00

41 lines
764 B
C++

#pragma once
#include <QMap>
#include <QObject>
#include <QTimer>
#include "db/EventInfo.h"
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 updateEventThread(const QString &key, const EventInfo &event, const QString &result);
void startThreadForKey(const QString &key);
};