/***************************************************************************
- * Copyright (C) 2009 by Lassi Väätämöinen *
- * lassi.vaatamoinen@ixonos.com *
+ * Copyright (C) 2010 by Ixonos Plc *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * the Free Software Foundation; version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
#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