class AlertWaiterThread : public QThread
{
Q_OBJECT
-
- public:
- AlertWaiterThread(TorrentSession *const session, QObject *parent = 0);
-
- virtual ~AlertWaiterThread();
-
- virtual void run(); // Overridden from QThread
-
- signals:
- void alert(TorrentAlert const *alert);
-
- private:
- TorrentSession *const btSession_;
+
+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_;
};