#define ALERTWAITERTHREAD_H
#include <QThread>
+#include "QBittorrentSession.h"
+
/**
@author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
class AlertWaiterThread : public QThread
{
Q_OBJECT
-
- public:
- AlertWaiterThread(QObject* parent = 0);
-
- ~AlertWaiterThread();
-
- void run(); // Overridden from QThread
-
- signals:
- void alert();
-
- private:
-
+
+public:
+ AlertWaiterThread(TorrentSession *const session, QObject *parent = 0);
+
+ virtual ~AlertWaiterThread();
+
+ void allAlerts(bool enable = true);
+
+ virtual void run(); // Overridden from QThread
+
+signals:
+ /// @TODO alert() uses direct connection, so th connected slot is executed by AlertWaiterThread
+ /// Hence, QMutex is needed in receiver slot/thread for thread-safety.
+ /// @NOTE Alternatively, we could use an event loop in the thread and use queued signal (is it heavier?)
+ void alert(Alert const *alert);
+
+private:
+ TorrentSession *const btSession_;
+
};
#endif