mirror of https://github.com/aria2/aria2
2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added operator+=, operator-=, operator- * src/TransferStat.cc * src/TransferStat.hpull/1/head
parent
662a90ce9b
commit
948b13ad52
|
@ -1,3 +1,9 @@
|
|||
2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Added operator+=, operator-=, operator-
|
||||
* src/TransferStat.cc
|
||||
* src/TransferStat.h
|
||||
|
||||
2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Refactored RarestPieceSelector to reduce CPU load, especially for
|
||||
|
|
|
@ -41,9 +41,61 @@ TransferStat operator+(const TransferStat& a, const TransferStat& b)
|
|||
TransferStat c;
|
||||
c.downloadSpeed = a.downloadSpeed+b.downloadSpeed;
|
||||
c.uploadSpeed = a.uploadSpeed+b.uploadSpeed;
|
||||
c.sessionUploadLength = a.sessionUploadLength+b.sessionUploadLength;
|
||||
c.sessionDownloadLength = a.sessionDownloadLength+b.sessionDownloadLength;
|
||||
c.sessionUploadLength = a.sessionUploadLength+b.sessionUploadLength;
|
||||
return c;
|
||||
}
|
||||
|
||||
TransferStat operator-(const TransferStat& a, const TransferStat& b)
|
||||
{
|
||||
TransferStat c;
|
||||
if(a.downloadSpeed > b.downloadSpeed) {
|
||||
c.downloadSpeed = a.downloadSpeed-b.downloadSpeed;
|
||||
}
|
||||
if(a.uploadSpeed > b.uploadSpeed) {
|
||||
c.uploadSpeed = a.uploadSpeed-b.uploadSpeed;
|
||||
}
|
||||
if(a.sessionDownloadLength > b.sessionDownloadLength) {
|
||||
c.sessionDownloadLength = a.sessionDownloadLength-b.sessionDownloadLength;
|
||||
}
|
||||
if(a.sessionUploadLength > b.sessionUploadLength) {
|
||||
c.sessionUploadLength = a.sessionUploadLength-b.sessionUploadLength;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
TransferStat& TransferStat::operator+=(const TransferStat& stat)
|
||||
{
|
||||
downloadSpeed += stat.downloadSpeed;
|
||||
uploadSpeed += stat.uploadSpeed;
|
||||
sessionDownloadLength += stat.sessionDownloadLength;
|
||||
sessionUploadLength += stat.sessionUploadLength;
|
||||
return *this;
|
||||
}
|
||||
|
||||
TransferStat& TransferStat::operator-=(const TransferStat& stat)
|
||||
{
|
||||
if(downloadSpeed > stat.downloadSpeed) {
|
||||
downloadSpeed -= stat.downloadSpeed;
|
||||
} else {
|
||||
downloadSpeed = 0;
|
||||
}
|
||||
if(uploadSpeed > stat.uploadSpeed) {
|
||||
uploadSpeed -= stat.uploadSpeed;
|
||||
} else {
|
||||
uploadSpeed = 0;
|
||||
}
|
||||
if(sessionDownloadLength > stat.sessionDownloadLength) {
|
||||
sessionDownloadLength -= stat.sessionDownloadLength;
|
||||
} else {
|
||||
sessionDownloadLength = 0;
|
||||
}
|
||||
if(sessionUploadLength > stat.sessionUploadLength) {
|
||||
sessionUploadLength -= stat.sessionUploadLength;
|
||||
} else {
|
||||
sessionUploadLength = 0;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -76,6 +76,12 @@ public:
|
|||
|
||||
friend TransferStat operator+(const TransferStat& a, const TransferStat& b);
|
||||
|
||||
friend TransferStat operator-(const TransferStat& a, const TransferStat& b);
|
||||
|
||||
TransferStat& operator+=(const TransferStat& stat);
|
||||
|
||||
TransferStat& operator-=(const TransferStat& stat);
|
||||
|
||||
unsigned int getDownloadSpeed() const {
|
||||
return downloadSpeed;
|
||||
}
|
||||
|
@ -121,6 +127,8 @@ public:
|
|||
|
||||
TransferStat operator+(const TransferStat& a, const TransferStat& b);
|
||||
|
||||
TransferStat operator-(const TransferStat& a, const TransferStat& b);
|
||||
|
||||
} // namespace aria2
|
||||
|
||||
#endif // _D_TRANSFER_STAT_H_
|
||||
|
|
Loading…
Reference in New Issue