/* */ #ifndef D_CONSOLE_STAT_CALC_H #define D_CONSOLE_STAT_CALC_H #include "StatCalc.h" #include #include #include #include "TimerA2.h" namespace aria2 { class SizeFormatter : public std::unary_function { protected: virtual std::string format(int64_t size) const = 0; public: virtual ~SizeFormatter() = default; std::string operator()(int64_t size) const; }; class ConsoleStatCalc : public StatCalc { private: Timer cp_; Timer lastSummaryNotified_; std::chrono::seconds summaryInterval_; std::unique_ptr sizeFormatter_; bool readoutVisibility_; bool truncate_; bool isTTY_; bool colorOutput_; public: ConsoleStatCalc(std::chrono::seconds summaryInterval, bool colorOutput = true, bool humanReadable = true); virtual ~ConsoleStatCalc() = default; virtual void calculateStat(const DownloadEngine* e) CXX11_OVERRIDE; void setReadoutVisibility(bool visibility) { readoutVisibility_ = visibility; } void setTruncate(bool truncate) { truncate_ = truncate; } }; } // namespace aria2 #endif // D_CONSOLE_STAT_CALC_H