summaryrefslogtreecommitdiff
path: root/src/SpeedCalc.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-20 07:41:33 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-20 07:41:33 +0000
commitf242a1ec8fde0c47db52b0d652ad7890a153fd57 (patch)
treef16de8ede7cca2464a04f3f7c277d173cfefd471 /src/SpeedCalc.cc
parent4947fa39b3029470b851a1cfc7f8d2152a5689e5 (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.cc8
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;