20 #ifndef BTPEERDOWNLOADER_H
21 #define BTPEERDOWNLOADER_H
25 #include <interfaces/piecedownloader.h>
26 #include <download/request.h>
37 struct TimeStampedRequest
48 TimeStampedRequest(
const Request & r);
54 TimeStampedRequest(
const TimeStampedRequest & t);
62 return time_stamp < t.time_stamp;
124 bool isNull()
const {
return peer == 0;}
130 bool hasChunk(Uint32 idx)
const override;
149 QString
getName()
const override;
190 void peerDestroyed();
195 QList<TimeStampedRequest> reqs;
196 QList<Request> wait_queue;
197 Uint32 max_wait_queue_size;
Class which downloads pieces from a Peer.
bool isNull() const
Is NULL (is the Peer set)
const Peer * getPeer() const
Get the Peer.
Uint32 getMaxChunkDownloads() const
Get the maximum number of chunk downloads.
void download(const Request &req) override
void piece(const Piece &p)
bool isChoked() const override
Is the Peer choked.
Manages the connection with a peer.
void onRejected(const Request &req)
bool operator<(const TimeStampedRequest &t) const
Smaller then operator, uses timestamps to compare.
bool hasChunk(Uint32 idx) const override
bool canAddRequest() const override
See if we can add a request to the wait_queue.
Request of a piece sent to other peers.
void cancelAll() override
QString getName() const override
bool canDownloadChunk() const override
void checkTimeouts() override
~TimeStampedRequest()
Destructor.
Uint32 getNumRequests() const
Get the number of active requests.
TimeStampedRequest & operator=(const Request &r)
bool operator==(const Request &r)
Uint32 getDownloadRate() const override
void cancel(const Request &req) override
PeerDownloader(Peer *peer, Uint32 chunk_size)