Added Q_FUNC_INFO macros to some functions.
[qtrapids] / src / engine / QBittorrentSession.h
index 19de9d7..5dcc7bb 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        *
 #ifndef QBITTORRENTSESSION_H
 #define QBITTORRENTSESSION_H
 
+#include <memory>
+
+#include <QObject>
+
+#include <libtorrent/session.hpp>
+#include <libtorrent/torrent_info.hpp>
+#include <libtorrent/alert_types.hpp>
+
+#include "QTorrentHandle.h"
+
+
+// Forward declarations and typedefs
+class AlertWaiterThread;
+typedef libtorrent::session TorrentSession;
+typedef libtorrent::session_settings SessionSettings;
+typedef libtorrent::add_torrent_params AddTorrentParams;
+typedef libtorrent::alert Alert;
+typedef        libtorrent::torrent_alert TorrentAlert;
+typedef libtorrent::sha1_hash Sha1Hash;
+
+
+namespace qtrapids
+{
+
 /**
        @author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
 */
-class QBittorrentSession {
+class QBittorrentSession : public QObject
+{
+       Q_OBJECT
+//             class   BitTorrentSession;
+
+public:
+       QBittorrentSession(QObject *parent = 0);
+       ~QBittorrentSession();
+
+       /// @brief Add torrent to session.
+       qtrapids::QTorrentHandle addTorrent(AddTorrentParams const& params);
+       void removeTorrent(qtrapids::QTorrentHandle const& handle);
+
+       void setUploadRateLimit(int rate);
+       void setDownloadRateLimit(int rate);
+       int getUploadRateLimt() const;
+       int getDownloadRateLimit() const;
+       
+signals:
+       void alert(std::auto_ptr<Alert> al);
 
-       public:
-    QBittorrentSession();
+private slots:
+       void on_alert(Alert const *al);
 
-    ~QBittorrentSession();
-       public slots:
-       private slots:
-       private:
-               
+private:
+       TorrentSession btSession_;
+       AlertWaiterThread *alertWaiter_;
 
 };
 
+} //namespace qtrapids
 #endif