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;
62 Uint32 getNumSeeders()
const;
65 Uint32 getNumLeechers()
const;
81 virtual void completed();
86 virtual void manualUpdate();
91 virtual void scrape();
94 void saveCustomURLs();
95 void loadCustomURLs();
96 void saveTrackerStatus();
97 void loadTrackerStatus();
102 Uint64 bytesDownloaded()
const override;
103 Uint64 bytesUploaded()
const override;
104 Uint64 bytesLeft()
const override;
105 const SHA1Hash & infoHash()
const override;
106 bool isPartialSeed()
const override;
113 void onTrackerError(
const QString & err);
124 void updateCurrentManually();
129 bool no_save_custom_trackers;
132 QList<QUrl> custom_trackers;
138 #endif // BT_TRACKERMANAGER_H