- fixed download priority handling. Proof-tested on multiple DL from the same peer.

- removed dependency of mRateIncrease into measured rtt -> would cause very slow transfers through long tunnels



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4671 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2011-11-16 20:30:20 +00:00
parent f952bc267b
commit 4d9727f47a
4 changed files with 59 additions and 90 deletions

View file

@ -57,7 +57,6 @@ class peerInfo
{
public:
peerInfo(std::string peerId_in):peerId(peerId_in),state(PQIPEER_NOT_ONLINE),desiredRate(0),actualRate(0),
// offset(0),chunkSize(0),receivedSize(0),
lastTS(0),
recvTS(0), lastTransfers(0), nResets(0),
rtt(0), rttActive(false), rttStart(0), rttOffset(0),
@ -67,7 +66,6 @@ public:
}
peerInfo(std::string peerId_in,uint32_t state_in,uint32_t maxRate_in):
peerId(peerId_in),state(state_in),desiredRate(maxRate_in),actualRate(0),
// offset(0),chunkSize(0),receivedSize(0),
lastTS(0),
recvTS(0), lastTransfers(0), nResets(0),
rtt(0), rttActive(false), rttStart(0), rttOffset(0),
@ -80,13 +78,6 @@ public:
double desiredRate;
double actualRate;
//current file data request
// uint64_t offset;
// uint32_t chunkSize;
//already received data size for current request
// uint32_t receivedSize;
time_t lastTS; /* last Request */
time_t recvTS; /* last Recv */
uint32_t lastTransfers; /* data recvd in last second */
@ -164,6 +155,9 @@ public:
bool queryInactive();
void adjustSpeed();
DwlSpeed downloadPriority() const { return mPriority ; }
void setDownloadPriority(DwlSpeed p) { mPriority =p ; }
private:
bool locked_tickPeerTransfer(peerInfo &info);
@ -199,6 +193,7 @@ private:
ftFileStatus mFileStatus; //used for pause/resume file transfer
HashThread *_hash_thread ;
DwlSpeed mPriority ; // transfer speed priority
};
#endif //FT_TRANSFER_MODULE_HEADER