Default progress is now infinite. Finite is moved to new class

This commit is contained in:
2026-05-29 17:15:38 +03:00
parent 89c5629176
commit c38665fd0c
7 changed files with 126 additions and 54 deletions

View File

@@ -1,66 +1,39 @@
#include "Progress.h"
#include "ProgressFinite.h"
#include <sstream>
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;
}
}
Progress::Progress(const string& message, size_t current)
: m_message(message),
m_current(current)
{}
void Progress::set_message(const std::string& message)
{
m_message = message;
}
void Progress::set_progress(size_t current)
{
m_current = current;
}
void Progress::increment_progress(size_t inc)
{
m_current += inc;
if (m_current > m_total)
{
m_current = m_total;
}
}
string Progress::print_progress()
string Progress::print_progress() const
{
stringstream out;
out << m_current << "/" << m_total << " - " << m_message;
out << m_current << " - " << m_message;
return out.str();
}
ostream& operator<<(ostream& out, const Progress& progress)
{
out << progress.m_current << "/" << progress.m_total;
out << " - " << progress.m_message;
out << progress.print_progress();
return out;
}