diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp index 3ebb3b07b0e85cb22094db75f3cfe0757b1ca374..631ceaa7584e15d76591a39968dda3340fbbaf8d 100644 --- a/cmdline/CtaAdminCmd.cpp +++ b/cmdline/CtaAdminCmd.cpp @@ -32,8 +32,8 @@ // global synchronisation flag std::atomic<bool> isHeaderSent(false); -// initialise an output buffer of 5 lines -cta::admin::TextFormatter formattedText(5); +// initialise an output buffer of 1000 lines +cta::admin::TextFormatter formattedText(1000); namespace XrdSsiPb { diff --git a/cmdline/CtaAdminTextFormatter.cpp b/cmdline/CtaAdminTextFormatter.cpp index 9b2dc8dd7f31ea773d0d1efe80e188b24d6c74dc..60107443c82e6eaa4261d6f4be81aa0fef1c1695 100644 --- a/cmdline/CtaAdminTextFormatter.cpp +++ b/cmdline/CtaAdminTextFormatter.cpp @@ -43,16 +43,16 @@ std::string TextFormatter::timeToStr(const time_t &unixtime) { std::string TextFormatter::dataSizeToStr(uint64_t value) { - const std::vector<char> suffix = { 'E', 'P', 'T', 'G', 'M', 'K' }; + const std::vector<char> suffix = { 'K', 'M', 'G', 'T', 'P', 'E' }; // Simple case, values less than 1000 bytes don't take a suffix if(value < 1000) return std::to_string(value); - // Find the correct scaling, starting at 1 EB and working down. I'm assuming we won't have - // zettabytes or yottabytes of data in a tapepool anytime soon. - uint64_t divisor; + // Find the correct scaling, starting at 1 KB and working up. I'm assuming we won't have zettabytes + // or yottabytes of data in a tapepool anytime soon. int unit; - for(unit = 0, divisor = 1'000'000'000'000'000'000; value < divisor; divisor /= 1000, ++unit) ; + uint64_t divisor; + for(unit = 0, divisor = 1000; unit < 6 && value >= divisor*1000; divisor *= 1000, ++unit) ; // Convert to format like "3.1G" double val_d = static_cast<double>(value) / static_cast<double>(divisor);