#include "Progress.h" #include using std::ostream; using std::string; using std::stringstream; Progress::Progress(const string& message, size_t total, size_t current) : m_current(current), m_total(total), m_message(message) { if (m_current > m_total) { m_current = m_total; } } void Progress::set_total(size_t total) { m_total = total; if (m_current > m_total) { m_current = m_total; } } void Progress::set_progress(size_t current) { m_current = current; if (m_current > m_total) { m_current = m_total; } } void Progress::set_message(const std::string& message) { m_message = message; } void Progress::increment_progress(size_t inc) { m_current += inc; if (m_current > m_total) { m_current = m_total; } } string Progress::print_progress() { stringstream out; out << m_current << "/" << m_total << " - " << m_message; return out.str(); } ostream& operator<<(ostream& out, const Progress& progress) { out << progress.m_current << "/" << progress.m_total; out << " - " << progress.m_message; return out; }