#ifndef QTORRENTHANDLE_H
#define QTORRENTHANDLE_H
+#include <QtGlobal>
+
#include <libtorrent/torrent_handle.hpp>
+typedef libtorrent::torrent_status TorrentStatus;
+typedef libtorrent::torrent_info TorrentInfo;
+typedef libtorrent::torrent_handle TorrentHandle;
+
/**
@author Lassi Väätämöinen <lassi.vaatamoinen@ixonos.com>
*/
-class QTorrentHandle
+
+namespace qtrapids
+{
+
+class QTorrentHandle
{
-
- public:
- QTorrentHandle(libtorrent::torrent_handle handle);
+public:
+
+ enum State
+ {
+ QUEUED_FOR_CHECKING = TorrentStatus::queued_for_checking,
+ CHECKING_FILES,
+ DOWNLOADING_METADATA,
+ DOWNLOADING,
+ FINISHED,
+ SEEDING,
+ ALLOCATING,
+ UNSPECIFIED
+ };
+
+ QTorrentHandle(libtorrent::torrent_handle handle);
~QTorrentHandle();
-
-
- private:
- QTorrentHandle(); // Prevent default construct.
- libtorrent::torrent_handle torrentHandle;
-
+
+
+
+ TorrentInfo const& getTorrentInfo() const;
+
+ bool isValid() const;
+
+ QString name() const;
+ size_t getTotalSize() const;
+ QTorrentHandle::State state() const;
+ float progress() const;
+ float uploadRate() const;
+ float downloadRate() const;
+ qint32 numSeeds() const;
+ qint32 numLeeches() const;
+ qint32 ratio() const;
+
+ TorrentHandle getHandle() const;
+
+ bool operator==(QTorrentHandle const& h) const;
+ bool operator<(QTorrentHandle const& h) const;
+
+private:
+ QTorrentHandle(); // Prevent default construct.
+ TorrentHandle torrentHandle_;
+
+ TorrentStatus status() const;
+
};
+} // namespace qtrapids
#endif