diff options
Diffstat (limited to 'src/lib/job.h')
| -rw-r--r-- | src/lib/job.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lib/job.h b/src/lib/job.h index 2a77f78f7..b39130479 100644 --- a/src/lib/job.h +++ b/src/lib/job.h @@ -26,6 +26,7 @@ #include <string> #include <boost/thread/mutex.hpp> +#include <boost/enable_shared_from_this.hpp> #include <sigc++/sigc++.h> class Log; @@ -35,7 +36,7 @@ class Options; /** @class Job * @brief A parent class to represent long-running tasks which are run in their own thread. */ -class Job +class Job : public boost::enable_shared_from_this<Job> { public: Job (boost::shared_ptr<const FilmState> s, boost::shared_ptr<const Options> o, Log* l); @@ -70,6 +71,9 @@ public: protected: + virtual int remaining_time () const; + + /** Description of a job's state */ enum State { NEW, ///< the job hasn't been started yet RUNNING, ///< the job is running @@ -80,10 +84,11 @@ protected: void set_state (State); void set_error (std::string e); + /** FilmState for this job */ boost::shared_ptr<const FilmState> _fs; + /** options in use for this job */ boost::shared_ptr<const Options> _opt; - - /** A log that this job can write to */ + /** a log that this job can write to */ Log* _log; private: @@ -92,11 +97,15 @@ private: /** mutex for _state and _error */ mutable boost::mutex _state_mutex; + /** current state of the job */ State _state; + /** message for an error that has occurred (when state == FINISHED_ERROR) */ std::string _error; + /** time that this job was started */ time_t _start_time; - + + /** mutex for _stack and _progress_unknown */ mutable boost::mutex _progress_mutex; struct Level { |
