24 #ifndef _TPIE_PROGRESS_INDICATOR_BASE_H
25 #define _TPIE_PROGRESS_INDICATOR_BASE_H
27 #include <tpie/tpie_export.h>
35 enum description_importance {
91 void step(stream_size_type step=1) {
94 if (step >= m_remainingSteps) {
97 m_remainingSteps -= step;
121 virtual void init(stream_size_type range=0) {
122 if (range != 0) set_range(range);
147 virtual void refresh() = 0;
160 void set_time_predictor(execution_time_predictor * p) {m_predictor = p;}
162 std::string estimated_remaining_time() {
163 if (m_range == 0 || m_predictor == 0)
return "";
164 return m_predictor->estimate_remaining_time(
double(m_current) /
double(m_range) );
167 virtual void push_breadcrumb(
const char *, description_importance) {}
168 virtual void pop_breadcrumb() {}
177 stream_size_type m_remainingSteps;
184 refresh_impl * m_refreshImpl;
193 #endif // _TPIE_PROGRESS_INDICATOR_BASE