/* */ #ifndef _D_CONSOLE_STAT_CALC_H_ #define _D_CONSOLE_STAT_CALC_H_ #include "StatCalc.h" #include "TimerA2.h" #include "util.h" namespace aria2 { class SizeFormatter:public std::unary_function { protected: virtual std::string format(int64_t size) const = 0; public: virtual ~SizeFormatter() {} std::string operator()(int64_t size) const { return format(size); } }; class AbbrevSizeFormatter:public SizeFormatter { protected: virtual std::string format(int64_t size) const { return util::abbrevSize(size); } }; class PlainSizeFormatter:public SizeFormatter { protected: virtual std::string format(int64_t size) const { return util::itos(size); } }; class ConsoleStatCalc:public StatCalc { private: Timer _cp; Timer _lastSummaryNotified; time_t _summaryInterval; SharedHandle _sizeFormatter; public: ConsoleStatCalc(time_t summaryInterval, bool humanReadable = true); virtual ~ConsoleStatCalc() {} virtual void calculateStat(const DownloadEngine* e); }; typedef SharedHandle ConsoleStatCalcHandle; } // namespace aria2 #endif // _D_CONSOLE_STAT_CALC_H_