#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::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();
-
+ QBittorrentSession(QObject *parent = 0);
~QBittorrentSession();
- public slots:
+
+ /// @brief Add torrent to session.
+ qtrapids::QTorrentHandle addTorrent(AddTorrentParams const& params);
+ void removeTorrent(qtrapids::QTorrentHandle const& handle);
+
+ signals:
+ void alert(std::auto_ptr<Alert> al);
+
private slots:
+ void on_alert(Alert const *al);
+
private:
+ TorrentSession btSession_;
+ AlertWaiterThread *alertWaiter_;
-
};
+} //namespace qtrapids
#endif