Added Q_FUNC_INFO macros to some functions.
[qtrapids] / src / engine / AlertWaiterThread.h
index 5ba3bf6..5fd2a23 100644 (file)
@@ -1,11 +1,9 @@
 /***************************************************************************
- *   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        *
@@ -21,6 +19,8 @@
 #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