ImageD  v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
d_finishtimeprognosis.h
Go to the documentation of this file.
1 /************************************
2  * added: 17.11.2020 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_FINISHTIMEPROGNOSIS_H
10 #define D_FINISHTIMEPROGNOSIS_H
11 
12 //own
13 #include <d_enum.h>
14 
15 //Qt
16 #include <QObject>
17 #include <QElapsedTimer>
18 #include <QDateTime>
19 #include <QDebug>
20 #include <QProgressBar>
21 
22 //namespaces
23 using namespace std;
24 
29 class D_FinishTimePrognosis : public QObject
30 {
31  Q_OBJECT
32 
33 public:
35  D_FinishTimePrognosis(QProgressBar *bar);
36  D_FinishTimePrognosis(QProgressBar *bar, size_t step_count);
37  D_FinishTimePrognosis(QProgressBar *bar, size_t step_count, qint64 typical_step_duration_ms);
38  D_FinishTimePrognosis(size_t step_count);
39 
40  void set_ProgressBar(QProgressBar *bar);
41 
42 public slots:
43  void set_StepCount(size_t step_count);
44  void start(size_t step_count);
45  void start(size_t step_count, qint64 typical_step_duration_ms);
46  void start();
47  void step();
48  void quit(QString QS_reason_for_qutiing);
49  void end();
50 
51 private:
52  bool state_bar_set = false;
53  bool state_step_max_set = false;
54  bool state_running = false;
55  bool state_run_1st_time = true;
56 
57  QProgressBar *pProgressBar;
58 
59  size_t StepsMax = 0;
60  size_t StepsExecuted = 0;
61 
62  QDateTime Time_Start;
63  QDateTime Time_Running;
64  QDateTime Time_FinishPrognosis;
65  QElapsedTimer Timer_Measurement;
66 
67  qint64 DefaultStepLength = 0;
68 };
69 
70 #endif // D_FINISHTIMEPROGNOSIS_H
D_FinishTimePrognosis::set_ProgressBar
void set_ProgressBar(QProgressBar *bar)
Definition: d_finishtimeprognosis.cpp:39
D_FinishTimePrognosis::end
void end()
D_FinishTimePrognosis::end successfully end the measurment.
Definition: d_finishtimeprognosis.cpp:162
D_FinishTimePrognosis
The D_FinishTimePrognosis class measures the time of processing steps and prognoses the finish time.
Definition: d_finishtimeprognosis.h:30
D_FinishTimePrognosis::step
void step()
D_FinishTimePrognosis::step call this when one of X steps is done.
Definition: d_finishtimeprognosis.cpp:122
D_FinishTimePrognosis::quit
void quit(QString QS_reason_for_qutiing)
D_FinishTimePrognosis::quit call(ed) when something causes the processing to stop running.
Definition: d_finishtimeprognosis.cpp:151
D_FinishTimePrognosis::set_StepCount
void set_StepCount(size_t step_count)
Definition: d_finishtimeprognosis.cpp:58
D_FinishTimePrognosis::start
void start()
D_FinishTimePrognosis::start start time measurement.
Definition: d_finishtimeprognosis.cpp:80
D_FinishTimePrognosis::D_FinishTimePrognosis
D_FinishTimePrognosis()
Definition: d_finishtimeprognosis.cpp:11
d_enum.h
d_finishtimeprognosis.h