diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-07-20 07:41:33 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-07-20 07:41:33 +0000 |
| commit | f242a1ec8fde0c47db52b0d652ad7890a153fd57 (patch) | |
| tree | f16de8ede7cca2464a04f3f7c277d173cfefd471 /src/SpeedCalc.cc | |
| parent | 4947fa39b3029470b851a1cfc7f8d2152a5689e5 (diff) | |
2008-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Cache last calculated average download/upload speed.
PeerStat::getAvgDownloadSpeed(), PeerStat::getAvgUploadSpeed()
return
cached value.
Now SpeedCalc::changeSw() is called from
SpeedCalc::calculateSpeed()
* src/PeerStat.h
* src/SpeedCalc.cc
* src/SpeedCalc.h
Diffstat (limited to 'src/SpeedCalc.cc')
| -rw-r--r-- | src/SpeedCalc.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/SpeedCalc.cc b/src/SpeedCalc.cc index df0d0f92..d4fa4481 100644 --- a/src/SpeedCalc.cc +++ b/src/SpeedCalc.cc @@ -64,6 +64,9 @@ unsigned int SpeedCalc::calculateSpeed() { unsigned int speed = lengthArray[sw]*1000/milliElapsed; prevSpeed = speed; maxSpeed = std::max(speed, maxSpeed); + if(isIntervalOver()) { + changeSw(); + } return speed; } else { return prevSpeed; @@ -76,6 +79,9 @@ unsigned int SpeedCalc::calculateSpeed(const struct timeval& now) { unsigned int speed = lengthArray[sw]*1000/milliElapsed; prevSpeed = speed; maxSpeed = std::max(speed, maxSpeed); + if(isIntervalOver()) { + changeSw(); + } return speed; } else { return prevSpeed; @@ -102,7 +108,7 @@ void SpeedCalc::changeSw() { nextInterval = cpArray[sw].difference()+CHANGE_INTERVAL_SEC; } -unsigned int SpeedCalc::getAvgSpeed() const { +unsigned int SpeedCalc::calculateAvgSpeed() const { uint64_t milliElapsed = start.differenceInMillis(); if(milliElapsed) { unsigned int speed = accumulatedLength*1000/milliElapsed; |
