24 #include <util/constants.h>
25 #include <peer/peer.h>
26 #include <ktorrent_export.h>
31 const Uint32 UNDEFINED_ID = 0xFFFFFFFF;
43 Uint32 opt_unchoked_peer_id;
46 virtual ~ChokeAlgorithm();
54 virtual void doChokingLeechingState(PeerManager & pman,ChunkManager & cman,
const TorrentStats & stats) = 0;
62 virtual void doChokingSeedingState(PeerManager & pman,ChunkManager & cman,
const TorrentStats & stats) = 0;
77 class KTORRENT_EXPORT Choker
79 ChokeAlgorithm* choke;
82 static Uint32 num_upload_slots;
95 Uint32 getOptimisticlyUnchokedPeerID()
const {
return choke->getOptimisticlyUnchokedPeerID();}
98 static void setNumUploadSlots(Uint32 n) {num_upload_slots = n;}
101 static Uint32 getNumUploadSlots() {
return num_upload_slots;}