1 #ifndef TIL_PROGRESS_INDICATOR_H_ 2 #define TIL_PROGRESS_INDICATOR_H_ 26 std::cout << 100 * current / total <<
"%..." << std::flush;
38 template <
typename TPICallback >
67 void setDelay(
double s) { m_delay = s * CLOCKS_PER_SEC; }
69 TPICallback &
callback() {
return m_callback; }
78 m_start = std::clock();
81 else if (current == 1)
85 m_finish = std::clock();
86 double t = double(m_finish - m_start);
95 m_callback(current, total);
102 TPICallback m_callback;
108 std::clock_t m_start, m_finish;
124 template <
typename TPICallback >
138 std::size_t &
total() {
return m_total; }
139 std::size_t &
parts() {
return m_parts; }
153 TPICallback m_callback;
157 std::size_t m_currentpart;
void operator()(std::size_t)
ProgressIndicator callback that prints percentage if computation is taking time.
void setDelay(double s)
Set delay, in seconds.
Belongs to package Box Do not include directly, include til/Box.h instead.
TPICallback & callback()
Access callback object.
ProgressIndicator< callback::PI_Timer< callback::PI_Print > > DelayedProgressIndicator
void operator()(std::size_t current, std::size_t total)
A simple base class used to give progression feedback.
void operator()(std::size_t current, std::size_t total)
ProgressIndicator callback that simply prints percentage.