summaryrefslogtreecommitdiff
path: root/src/lib/job.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-10-19 15:41:41 +0100
committerCarl Hetherington <cth@carlh.net>2013-10-19 15:41:41 +0100
commit11325f810e214935e4115248223c186a6e4cc184 (patch)
treeb529056e5f0001cccb0621f31a3bed5d4f43e2da /src/lib/job.h
parent6543d9a51b31ce24726187d9d1b018f05f09ef40 (diff)
Some improvements in progress reporting, especially for long jobs.
Diffstat (limited to 'src/lib/job.h')
-rw-r--r--src/lib/job.h30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/lib/job.h b/src/lib/job.h
index 9b8b14a93..62db0fc46 100644
--- a/src/lib/job.h
+++ b/src/lib/job.h
@@ -64,14 +64,16 @@ public:
int elapsed_time () const;
virtual std::string status () const;
+ std::string sub_name () const {
+ return _sub_name;
+ }
void set_progress_unknown ();
void set_progress (float);
- void ascend ();
- void descend (float);
- float overall_progress () const;
+ void sub (std::string);
+ float progress () const;
bool progress_unknown () const {
- return _progress_unknown;
+ return !_progress;
}
boost::signals2::signal<void()> Progress;
@@ -111,25 +113,13 @@ private:
std::string _error_summary;
std::string _error_details;
- /** time that this job was started */
+ /** time that this sub-job was started */
time_t _start_time;
+ std::string _sub_name;
- /** mutex for _stack and _progress_unknown */
+ /** mutex for _progress */
mutable boost::mutex _progress_mutex;
-
- struct Level {
- Level (float a) : allocation (a), normalised (0) {}
-
- float allocation;
- float normalised;
- };
-
- std::list<Level> _stack;
-
- /** true if this job's progress will always be unknown */
- bool _progress_unknown;
-
- float _last_set;
+ boost::optional<float> _progress;
int _ran_for;
};