diff --git a/src/ConsoleStatCalc.cc b/src/ConsoleStatCalc.cc index a28a4a54..abd510b1 100644 --- a/src/ConsoleStatCalc.cc +++ b/src/ConsoleStatCalc.cc @@ -80,10 +80,15 @@ std::string SizeFormatter::operator()(int64_t size) const namespace { class AbbrevSizeFormatter : public SizeFormatter { +private: + bool useSI_; + +public: + explicit AbbrevSizeFormatter(bool useSI) : useSI_{useSI} {} protected: virtual std::string format(int64_t size) const CXX11_OVERRIDE { - return util::abbrevSize(size); + return util::abbrevSize(size, useSI_); } }; } // namespace @@ -267,7 +272,7 @@ void printProgressSummary(const RequestGroupList& groups, size_t cols, } } // namespace -ConsoleStatCalc::ConsoleStatCalc(std::chrono::seconds summaryInterval, +ConsoleStatCalc::ConsoleStatCalc(std::chrono::seconds summaryInterval, bool useSI, bool colorOutput, bool humanReadable) : summaryInterval_(std::move(summaryInterval)), readoutVisibility_(true), @@ -278,9 +283,10 @@ ConsoleStatCalc::ConsoleStatCalc(std::chrono::seconds summaryInterval, isTTY_(isatty(STDOUT_FILENO) == 1), #endif // !__MINGW32__ colorOutput_(colorOutput) -{ +{ + if (humanReadable) { - sizeFormatter_ = make_unique(); + sizeFormatter_ = make_unique(useSI); } else { sizeFormatter_ = make_unique(); diff --git a/src/ConsoleStatCalc.h b/src/ConsoleStatCalc.h index 76bfd5b7..09a979b5 100644 --- a/src/ConsoleStatCalc.h +++ b/src/ConsoleStatCalc.h @@ -35,6 +35,7 @@ #ifndef D_CONSOLE_STAT_CALC_H #define D_CONSOLE_STAT_CALC_H +#include "Option.h" #include "StatCalc.h" #include @@ -70,8 +71,8 @@ private: bool colorOutput_; public: - ConsoleStatCalc(std::chrono::seconds summaryInterval, bool colorOutput = true, - bool humanReadable = true); + ConsoleStatCalc(std::chrono::seconds summaryInterval, bool useSI = false, + bool colorOutput = true, bool humanReadable = true); virtual ~ConsoleStatCalc() = default; diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index 46396f9c..84d81ac9 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -137,6 +137,7 @@ std::unique_ptr getStatCalc(const std::shared_ptr