12 #ifndef _MT_PROGRESS_H
13 #define _MT_PROGRESS_H
60 void display(T percentage)
64 printf(
"\r%s%s%d %c", msg.c_str(), _blank.c_str(),
int(percentage),
'%');
74 T prog = T(
float(_counter) /
float(num_next) * 100.0f);
90 if(size < 0) size = 0;
92 _blank.assign(size,
' ');
132 const char _bar_char;
135 std::string _blank_a;
136 std::string _blank_b;
143 void display(T nbars)
146 if(nbars > _bar_len) nbars = _bar_len;
148 _bar.assign(nbars, _bar_char);
149 _blank_b.assign(_bar_len - nbars,
' ');
151 printf(
"\r%s%s[%s%s]", msg.c_str(), _blank_a.c_str(), _bar.c_str(), _blank_b.c_str());
161 T prog = T(
float(_counter) /
float(num_next) *
float(_bar_len));
163 if(prog > _threshold)
180 progress_bar(T num_next,
const char* msg, T bar_start = 60, T bar_len = 20,
char bar_char =
'=') :
188 if(size < 0) size = 0;
190 _blank_a.assign(size,
' ');
211 this->display(_bar_len);
Display progress as a bar.
void next()
increment progress counter by one
progress_bar(T num_next, const char *msg, T bar_start=60, T bar_len=20, char bar_char='=')
Constructor.
void finish()
finish up progress display
void increment(T inc)
increment progress counter by a custom value
Display progress as a percentage.
progress_percent(T num_next, const char *msg, T start=60)
void increment(T inc)
increment progress counter by a custom value
void next()
increment progress counter by one
void finish()
finish up progress display
Base class for tracking progress.
virtual void increment(T inc)=0
T _num_next
number of times next will be triggered
progress(T num_next, const char *msg)
std::string _msg
message that will be displayed before progress information.