1 #ifndef OSMIUM_UTIL_PROGRESS_BAR_HPP 2 #define OSMIUM_UTIL_PROGRESS_BAR_HPP 53 static const char* s =
"======================================================================";
59 static const char* s =
" ";
88 const std::size_t percent = 100 * (m_done_size +
m_current_size) / m_max_size;
89 if (m_prev_percent == percent) {
92 m_prev_percent = percent;
94 const auto num =
static_cast<std::size_t
>(percent * (
full_length / 100.0));
99 std::cerr << bar(num) << '>
' << spc(full_length - num); 108 std::cerr << percent << "% \r"; 120 ProgressBar(std::size_t max_size, bool enable) noexcept : 121 m_max_size(max_size), 122 m_enable(max_size > 0 && enable) { 125 ProgressBar(const ProgressBar&) = delete; 126 ProgressBar& operator=(const ProgressBar&) = delete; 128 ProgressBar(ProgressBar&&) noexcept = default; 129 ProgressBar& operator=(ProgressBar&&) = default; 136 // Swallow any exceptions, because a destructor should 150 void update(std::size_t current_size) { 155 m_current_size = current_size; 166 void file_done(std::size_t file_size) { 168 m_done_size += file_size; 180 m_do_cleanup = false; 182 m_done_size = m_max_size; 196 std::cerr << spc() << " \r"; 197 m_prev_percent = 100 + 1; 201 }; // class ProgressBar 203 } // namespace osmium 205 #endif // OSMIUM_UTIL_PROGRESS_BAR_HPP static const char * spc(std::size_t len=full_length) noexcept
Definition: progress_bar.hpp:58
static const char * bar(std::size_t len=full_length) noexcept
Definition: progress_bar.hpp:52
std::size_t m_max_size
Definition: progress_bar.hpp:67
std::size_t m_done_size
Definition: progress_bar.hpp:70
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
bool m_enable
Definition: progress_bar.hpp:81
Definition: progress_bar.hpp:46
Definition: progress_bar.hpp:49
bool m_do_cleanup
Definition: progress_bar.hpp:85
std::size_t m_prev_percent
Definition: progress_bar.hpp:78
void display()
Definition: progress_bar.hpp:87
std::size_t m_current_size
Definition: progress_bar.hpp:73