X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fengine%2FQTorrentHandle.cpp;h=ff8a1ab859710883e915bdaf8aa39aeb7959d45a;hb=b13664d07d62f8b78c3a2a0d2f879b67262be8b4;hp=2b87b7882462699530e81619432de14431aa3fcf;hpb=b00c42d2b71e46b466d5796900f5bf5cb6017063;p=qtrapids diff --git a/src/engine/QTorrentHandle.cpp b/src/engine/QTorrentHandle.cpp index 2b87b78..ff8a1ab 100644 --- a/src/engine/QTorrentHandle.cpp +++ b/src/engine/QTorrentHandle.cpp @@ -17,10 +17,16 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include + #include "QTorrentHandle.h" -QTorrentHandle::QTorrentHandle(libtorrent::torrent_handle handle) : - torrentHandle(handle) +namespace qtrapids +{ + + +QTorrentHandle::QTorrentHandle(libtorrent::torrent_handle handle) : + torrentHandle_(handle) { } @@ -30,3 +36,127 @@ QTorrentHandle::~QTorrentHandle() } +TorrentStatus QTorrentHandle::status() const +{ + return torrentHandle_.status(); +} + + +TorrentInfo const& QTorrentHandle::getTorrentInfo() const +{ + return torrentHandle_.get_torrent_info(); +} + + +bool QTorrentHandle::isValid() const +{ + return torrentHandle_.is_valid(); +} + + +QString QTorrentHandle::name() const +{ + return QString::fromStdString(torrentHandle_.name()); +} + +size_t QTorrentHandle::getTotalSize() const +{ + TorrentInfo info = getTorrentInfo(); + return static_cast (info.total_size()); +} + + +QTorrentHandle::State QTorrentHandle::state() const +{ + TorrentStatus statusTmp = status(); + + switch (statusTmp.state) { + case TorrentStatus::queued_for_checking : + return QTorrentHandle::QUEUED_FOR_CHECKING; + case TorrentStatus::checking_files : + return QTorrentHandle::CHECKING_FILES; + case TorrentStatus::downloading_metadata : + return QTorrentHandle::DOWNLOADING_METADATA; + case TorrentStatus::downloading : + return QTorrentHandle::DOWNLOADING; + case TorrentStatus::finished : + return QTorrentHandle::FINISHED; + case TorrentStatus::seeding : + return QTorrentHandle::SEEDING; + case TorrentStatus::allocating : + return QTorrentHandle::ALLOCATING; + default: + return QTorrentHandle::UNSPECIFIED; + } + +} + + +float QTorrentHandle::progress() const +{ + TorrentStatus statusTmp = status(); + return statusTmp.progress; +} + +float QTorrentHandle::uploadRate() const +{ + TorrentStatus statusTmp = status(); + return statusTmp.upload_rate; +} + + +float QTorrentHandle::downloadRate() const +{ + TorrentStatus statusTmp = status(); + return statusTmp.download_rate; +} + + +qint32 QTorrentHandle::numSeeds() const +{ + TorrentStatus statusTmp = status(); + return statusTmp.list_seeds; +} + + +qint32 QTorrentHandle::numLeeches() const +{ + TorrentStatus statusTmp = status(); + return (statusTmp.list_peers - statusTmp.list_seeds); +} + + +qint32 QTorrentHandle::ratio() const +{ + TorrentStatus statusTmp = status(); + size_t ratio; + if (statusTmp.total_payload_download == 0) { + ratio = 0; + } else { + ratio = static_cast (statusTmp.total_payload_upload / statusTmp.total_payload_download); + } + + return ratio; +} + + +TorrentHandle QTorrentHandle::getHandle() const +{ + return torrentHandle_; +} + + +bool QTorrentHandle::operator==(QTorrentHandle const& h) const +{ + return torrentHandle_ == h.torrentHandle_; +} + + +bool QTorrentHandle::operator<(QTorrentHandle const& h) const +{ + return torrentHandle_ < h.torrentHandle_; +} + +} // namespace qtrapids + +