#pragma once #ifndef MESSMER_CPPUTILS_IO_PROGRESSBAR_H #define MESSMER_CPPUTILS_IO_PROGRESSBAR_H #include #include #include #include "Console.h" namespace cpputils { class ProgressBar final { public: explicit ProgressBar(std::shared_ptr console, const char* preamble, uint64_t max_value); explicit ProgressBar(const char* preamble, uint64_t max_value); void update(uint64_t value); private: std::shared_ptr _console; std::string _preamble; uint64_t _max_value; size_t _lastPercentage; DISALLOW_COPY_AND_ASSIGN(ProgressBar); }; } #endif