21 #ifndef BT_TRACKERMANAGER_H
22 #define BT_TRACKERMANAGER_H
26 #include <ktorrent_export.h>
27 #include <util/ptrmap.h>
28 #include <util/constants.h>
29 #include <tracker/tracker.h>
30 #include <interfaces/trackerslist.h>
42 class KTORRENT_EXPORT TrackerManager :
public QObject,
public bt::TrackersList,
public TrackerDataSource
46 TrackerManager(TorrentControl* tor,PeerManager* pman);
47 ~TrackerManager()
override;
49 TrackerInterface* getCurrentTracker()
const override;
50 void setCurrentTracker(TrackerInterface* t)
override;
51 void setCurrentTracker(
const QUrl &url)
override;
52 QList<TrackerInterface*> getTrackers()
override;
53 TrackerInterface* addTracker(
const QUrl &url,
bool custom =
true,
int tier = 1)
override;
54 bool removeTracker(TrackerInterface* t)
override;
55 bool removeTracker(
const QUrl &url)
override;
56 bool canRemoveTracker(TrackerInterface* t)
override;
57 void restoreDefault()
override;
58 void setTrackerEnabled(
const QUrl &url,
bool on)
override;
59 bool noTrackersReachable()
const override;
63 Uint32 getNumSeeders()
const;
66 Uint32 getNumLeechers()
const;
82 virtual void completed();
87 virtual void manualUpdate();
92 virtual void scrape();
95 void saveCustomURLs();
96 void loadCustomURLs();
97 void saveTrackerStatus();
98 void loadTrackerStatus();
103 Uint64 bytesDownloaded()
const override;
104 Uint64 bytesUploaded()
const override;
105 Uint64 bytesLeft()
const override;
106 const SHA1Hash & infoHash()
const override;
107 bool isPartialSeed()
const override;
114 void onTrackerError(
const QString & err);
125 void updateCurrentManually();
130 bool no_save_custom_trackers;
133 QList<QUrl> custom_trackers;
139 #endif // BT_TRACKERMANAGER_H