• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • transfer-plugins
  • bittorrent
bttransfer.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2007 - 2010 Lukas Appelhans <l.appelhans@gmx.de>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 
11 #ifndef BTTRANSFER_H
12 #define BTTRANSFER_H
13 
14 #include "core/transfer.h"
15 #include "torrent/torrentcontrol.h"
16 
17 #include <interfaces/monitorinterface.h>
18 
19 #include <QTimer>
20 
21 class FileModel;
22 
23 namespace bt
24 {
25  class ChunkDownloadInterface;
26  class TorrentFileInterface;
27  class PeerInterface;
28 }
29 
30 class BTTransfer : public Transfer, public bt::MonitorInterface
31 {
32  Q_OBJECT
33 
34  public:
38  enum BTTransferChange
39  {
40  Tc_ChunksTotal = 0x00010000,
41  Tc_ChunksDownloaded = 0x00020000,
42  Tc_ChunksExcluded = 0x00040000,
43  Tc_ChunksLeft = 0x00080000,
44  Tc_SeedsConnected = 0x00100000,
45  Tc_SeedsDisconnected = 0x00200000,
46  Tc_LeechesConnected = 0x00400000,
47  Tc_LeechesDisconnected = 0x00800000,
48  Tc_SessionBytesDownloaded = 0x04000000,
49  Tc_SessionBytesUploaded = 0x08000000,
50  Tc_TrackersList = 0x10000000
51  };
52 
53  BTTransfer(TransferGroup* parent, TransferFactory* factory,
54  Scheduler* scheduler, const KUrl& src, const KUrl& dest,
55  const QDomElement * e = 0);
56  ~BTTransfer();
57 
58  void deinit(Transfer::DeleteOptions options);
59 
60  //Job virtual functions
61  void start();
62  void stop();
63  virtual int elapsedTime() const;
64  virtual int remainingTime() const;
65  virtual bool isStalled() const;
66  virtual bool isWorking() const;
67 
71  virtual KUrl directory() const {return m_directory;}
72 
78  virtual bool setDirectory(const KUrl &newDirectory);
79 
80  virtual QList<KUrl> files() const;
81 
82  FileModel *fileModel();
83 
84  //Bittorrent specific functions (connected with TransferFlags
85  int chunksTotal() const;
86  int chunksDownloaded() const;
87  int chunksExcluded() const;
88  int chunksLeft() const;
89  int seedsConnected() const;
90  int seedsDisconnected() const;
91  int leechesConnected() const;
92  int leechesDisconnected() const;
93  int sessionBytesDownloaded() const;
94  int sessionBytesUploaded() const;
95  KUrl::List trackersList() const;
96  bt::TorrentControl * torrentControl();
97 
98  //More Bittorrent-Functions
99  void setPort(int port);
100  void addTracker(const QString &url);
101  //void save(const QDomElement &element);
102 
103  bool ready();
104 
105  protected:
106  void load(const QDomElement *element);
107  void setSpeedLimits(int ulLimit, int dlLimit);
108 
109  private slots:
110  void btTransferInit(const KUrl &src = KUrl(), const QByteArray &data = QByteArray());
111  void update();
112  void slotStoppedByError(const bt::TorrentInterface* &error, const QString &errormsg);
113  void slotDownloadFinished(bt::TorrentInterface* ti);
114  void newDestResult();
115  void filesSelected();
116 
117  private:
118  void startTorrent();
119  void stopTorrent();
120  void updateTorrent();
121  void updateFilesStatus();
122 
123  // bt::MonitorInterface functions
124  virtual void downloadRemoved(bt::ChunkDownloadInterface* cd);
125  virtual void downloadStarted(bt::ChunkDownloadInterface* cd);
126  virtual void peerAdded(bt::PeerInterface* peer);
127  virtual void peerRemoved(bt::PeerInterface* peer);
128  virtual void stopped();
129  virtual void destroyed();
130  virtual void filePercentageChanged(bt::TorrentFileInterface*, float) {}
131  virtual void filePreviewChanged(bt::TorrentFileInterface*, bool) {}
132 
133  bt::TorrentControl *torrent;
134  KUrl m_directory;
135  QString m_tmp;
136  QString m_tmpTorrentFile;
137  float m_ratio;
138  QTimer timer;
139  bool m_ready;
140  bool m_downloadFinished;
141  bool m_movingFile;
142  FileModel *m_fileModel;
143  QHash<KUrl, bt::TorrentFileInterface*> m_files;
144  int m_updateCounter;
145 };
146 
147 #endif
BTTransfer::trackersList
KUrl::List trackersList() const
Property-Functions.
Definition: bttransfer.cpp:503
BTTransfer::load
void load(const QDomElement *element)
Loads the transfer's info from the QDomElement.
Definition: bttransfer.cpp:210
BTTransfer::Tc_SeedsDisconnected
Definition: bttransfer.h:45
BTTransfer::remainingTime
virtual int remainingTime() const
Definition: bttransfer.cpp:602
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
BTTransfer::Tc_LeechesDisconnected
Definition: bttransfer.h:47
BTTransfer::Tc_ChunksTotal
Definition: bttransfer.h:40
BTTransfer::Tc_TrackersList
Definition: bttransfer.h:50
Job::error
Error error() const
Definition: job.h:96
BTTransfer::isStalled
virtual bool isStalled() const
Reimplemented functions from Transfer-Class.
Definition: bttransfer.cpp:104
BTTransfer::seedsConnected
int seedsConnected() const
Definition: bttransfer.cpp:562
BTTransfer::Tc_SessionBytesUploaded
Definition: bttransfer.h:49
BTTransfer::BTTransfer
BTTransfer(TransferGroup *parent, TransferFactory *factory, Scheduler *scheduler, const KUrl &src, const KUrl &dest, const QDomElement *e=0)
Definition: bttransfer.cpp:51
BTTransfer::files
virtual QList< KUrl > files() const
Definition: bttransfer.cpp:664
BTTransfer::setPort
void setPort(int port)
Public functions of BTTransfer.
Definition: bttransfer.cpp:231
BTTransfer::sessionBytesUploaded
int sessionBytesUploaded() const
Definition: bttransfer.cpp:522
BTTransfer::leechesConnected
int leechesConnected() const
Definition: bttransfer.cpp:578
BTTransfer::Tc_SeedsConnected
Definition: bttransfer.h:44
Job::scheduler
Scheduler * scheduler() const
Definition: job.h:106
BTTransfer::deinit
void deinit(Transfer::DeleteOptions options)
Definition: bttransfer.cpp:76
BTTransfer::Tc_ChunksDownloaded
Definition: bttransfer.h:41
BTTransfer::setSpeedLimits
void setSpeedLimits(int ulLimit, int dlLimit)
Function used to set the SpeedLimits to the transfer.
Definition: bttransfer.cpp:238
BTTransfer::isWorking
virtual bool isWorking() const
Definition: bttransfer.cpp:109
FileModel
This model represents the files that are being downloaded.
Definition: filemodel.h:101
BTTransfer::start
void start()
Definition: bttransfer.cpp:117
BTTransfer::chunksTotal
int chunksTotal() const
Definition: bttransfer.cpp:530
BTTransfer
Definition: bttransfer.h:30
BTTransfer::Tc_LeechesConnected
Definition: bttransfer.h:46
BTTransfer::Tc_SessionBytesDownloaded
Definition: bttransfer.h:48
BTTransfer::chunksExcluded
int chunksExcluded() const
Definition: bttransfer.cpp:546
BTTransfer::addTracker
void addTracker(const QString &url)
Definition: bttransfer.cpp:247
BTTransfer::Tc_ChunksExcluded
Definition: bttransfer.h:42
BTTransfer::leechesDisconnected
int leechesDisconnected() const
Definition: bttransfer.cpp:586
Transfer::factory
TransferFactory * factory() const
Definition: transfer.h:272
BTTransfer::torrentControl
bt::TorrentControl * torrentControl()
Definition: bttransfer.cpp:610
BTTransfer::seedsDisconnected
int seedsDisconnected() const
Definition: bttransfer.cpp:570
BTTransfer::setDirectory
virtual bool setDirectory(const KUrl &newDirectory)
Move the download to the new destination.
Definition: bttransfer.cpp:145
BTTransfer::chunksDownloaded
int chunksDownloaded() const
Definition: bttransfer.cpp:538
BTTransfer::stop
void stop()
Definition: bttransfer.cpp:178
BTTransfer::~BTTransfer
~BTTransfer()
Definition: bttransfer.cpp:68
Transfer::dest
const KUrl & dest() const
Definition: transfer.h:149
BTTransfer::BTTransferChange
BTTransferChange
Here we define the Bittorrent specific flags.
Definition: bttransfer.h:38
BTTransfer::Tc_ChunksLeft
Definition: bttransfer.h:43
BTTransfer::ready
bool ready()
Definition: bttransfer.cpp:615
transfer.h
BTTransfer::chunksLeft
int chunksLeft() const
Definition: bttransfer.cpp:554
BTTransfer::elapsedTime
virtual int elapsedTime() const
Definition: bttransfer.cpp:594
TransferFactory
TransferFactory.
Definition: transferfactory.h:52
BTTransfer::directory
virtual KUrl directory() const
Definition: bttransfer.h:71
BTTransfer::sessionBytesDownloaded
int sessionBytesDownloaded() const
Definition: bttransfer.cpp:514
BTTransfer::fileModel
FileModel * fileModel()
Definition: bttransfer.cpp:731
Transfer
Definition: transfer.h:36
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal