Pārlūkot izejas kodu

2008-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Fixed the bug that download progress summary is not printed in
	the interval specified by the option.
	* src/ConsoleStatCalc.cc
	* src/ConsoleStatCalc.h
Tatsuhiro Tsujikawa 17 gadi atpakaļ
vecāks
revīzija
22d91f1729
3 mainītis faili ar 25 papildinājumiem un 17 dzēšanām
  1. 7 0
      ChangeLog
  2. 16 15
      src/ConsoleStatCalc.cc
  3. 2 2
      src/ConsoleStatCalc.h

+ 7 - 0
ChangeLog

@@ -1,3 +1,10 @@
+2008-12-16  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Fixed the bug that download progress summary is not printed in the
+	interval specified by the option.
+	* src/ConsoleStatCalc.cc
+	* src/ConsoleStatCalc.h
+	
 2008-12-16  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Fixed compiler warning

+ 16 - 15
src/ConsoleStatCalc.cc

@@ -33,16 +33,7 @@
  */
 /* copyright --> */
 #include "ConsoleStatCalc.h"
-#include "RequestGroupMan.h"
-#include "RequestGroup.h"
-#include "FileAllocationMan.h"
-#include "FileAllocationEntry.h"
-#include "CheckIntegrityMan.h"
-#include "CheckIntegrityEntry.h"
-#include "Util.h"
-#ifdef ENABLE_BITTORRENT
-# include "BtContext.h"
-#endif // ENABLE_BITTORRENT
+
 #ifdef HAVE_TERMIOS_H
 #include <termios.h>
 #endif // HAVE_TERMIOS_H
@@ -50,6 +41,7 @@
 #include <sys/ioctl.h>
 #endif // HAVE_SYS_IOCTL_H
 #include <unistd.h>
+
 #include <iomanip>
 #include <iostream>
 #include <algorithm>
@@ -57,6 +49,17 @@
 #include <sstream>
 #include <iterator>
 
+#include "RequestGroupMan.h"
+#include "RequestGroup.h"
+#include "FileAllocationMan.h"
+#include "FileAllocationEntry.h"
+#include "CheckIntegrityMan.h"
+#include "CheckIntegrityEntry.h"
+#include "Util.h"
+#ifdef ENABLE_BITTORRENT
+# include "BtContext.h"
+#endif // ENABLE_BITTORRENT
+
 namespace aria2 {
 
 static void printProgress(std::ostream& o, const SharedHandle<RequestGroup>& rg)
@@ -155,8 +158,7 @@ static void printProgressSummary(const std::deque<SharedHandle<RequestGroup> >&
 }
 
 ConsoleStatCalc::ConsoleStatCalc(time_t summaryInterval):
-  _summaryInterval(summaryInterval),
-  _summaryIntervalCount(0)
+  _summaryInterval(summaryInterval)
 {}
 
 void
@@ -168,7 +170,6 @@ ConsoleStatCalc::calculateStat(const RequestGroupManHandle& requestGroupMan,
     return;
   }
   _cp.reset();
-  ++_summaryIntervalCount;
 
   bool isTTY = isatty(STDOUT_FILENO) == 1;
   unsigned short int cols = 80;
@@ -183,9 +184,9 @@ ConsoleStatCalc::calculateStat(const RequestGroupManHandle& requestGroupMan,
   }
   std::ostringstream o;
   if(requestGroupMan->countRequestGroup() > 0) {
-    if(_summaryInterval > 0 && _summaryIntervalCount%_summaryInterval == 0) {
+    if(_lastSummaryNotified.elapsed(_summaryInterval)) {
+      _lastSummaryNotified.reset();
       printProgressSummary(requestGroupMan->getRequestGroups(), cols);
-      _summaryIntervalCount = 0;
       std::cout << "\n";
     }
 

+ 2 - 2
src/ConsoleStatCalc.h

@@ -45,9 +45,9 @@ class ConsoleStatCalc:public StatCalc
 private:
   Time _cp;
 
-  time_t _summaryInterval;
+  Time _lastSummaryNotified;
 
-  time_t _summaryIntervalCount;
+  time_t _summaryInterval;
 public:
   ConsoleStatCalc(time_t summaryInterval);