27 #ifndef _MT_PROGRESS_H 28 #define _MT_PROGRESS_H 52 virtual void next() = 0;
75 void display(T percentage)
79 printf(
"\r%s%s%d %c", msg.c_str(), _blank.c_str(), int(percentage),
'%');
89 T prog = T(
float(_counter) /
float(num_next) * 100.0f);
105 if(size < 0) size = 0;
107 _blank.assign(size,
' ');
147 const char _bar_char;
150 std::string _blank_a;
151 std::string _blank_b;
158 void display(T nbars)
161 if(nbars > _bar_len) nbars = _bar_len;
163 _bar.assign(nbars, _bar_char);
164 _blank_b.assign(_bar_len - nbars,
' ');
166 printf(
"\r%s%s[%s%s]", msg.c_str(), _blank_a.c_str(), _bar.c_str(), _blank_b.c_str());
176 T prog = T(
float(_counter) /
float(num_next) *
float(_bar_len));
178 if(prog > _threshold)
195 progress_bar(T num_next,
const char* msg, T bar_start = 60, T bar_len = 20,
char bar_char =
'=') :
203 if(size < 0) size = 0;
205 _blank_a.assign(size,
' ');
226 this->display(_bar_len);
Display progress as a percentage.
void finish()
finish up progress display
void increment(T inc)
increment progress counter by a custom value
Base class for tracking progress.
T _num_next
number of times next will be triggered
Display progress as a bar.
progress_percent(T num_next, const char *msg, T start=60)
void next()
increment progress counter by one
std::string _msg
message that will be displayed before progress information.
void next()
increment progress counter by one
virtual void increment(T inc)=0
progress_bar(T num_next, const char *msg, T bar_start=60, T bar_len=20, char bar_char='=')
Constructor.
progress(T num_next, const char *msg)
void finish()
finish up progress display
void increment(T inc)
increment progress counter by a custom value