X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fjob.h;h=cb85059a61875c470a5a750d225fe51930dd7ee2;hp=e5552e49ea8f63acec13443fccf29cc3d6f6b7a9;hb=9b98a07cb61fd66fd73f9f58468100ec9b7eddd3;hpb=c6871fe8617b3de03662b7630355059393bf8043 diff --git a/src/lib/job.h b/src/lib/job.h index e5552e49e..cb85059a6 100644 --- a/src/lib/job.h +++ b/src/lib/job.h @@ -50,7 +50,7 @@ public: virtual void run () = 0; void start (); - void pause_by_user (); + bool pause_by_user (); void pause_by_priority (); void resume (); void cancel (); @@ -67,6 +67,8 @@ public: std::string error_summary () const; std::string error_details () const; + boost::optional message () const; + virtual std::string status () const; std::string json_status () const; std::string sub_name () const { @@ -87,6 +89,8 @@ public: boost::signals2::signal Progress; /** Emitted from the UI thread when the job is finished */ boost::signals2::signal Finished; + /** Emitted from the job thread when the job is finished */ + boost::signals2::signal FinishedImmediate; protected: @@ -105,8 +109,10 @@ protected: void set_state (State); void set_error (std::string s, std::string d); + void set_message (std::string m); int elapsed_sub_time () const; void check_for_interruption_or_pause (); + void stop_thread (); boost::shared_ptr _film; @@ -117,13 +123,15 @@ private: boost::thread* _thread; - /** mutex for _state and _error */ + /** mutex for _state, _error*, _message */ mutable boost::mutex _state_mutex; /** current state of the job */ State _state; /** summary of an error that has occurred (when state == FINISHED_ERROR) */ std::string _error_summary; std::string _error_details; + /** a message that should be given to the user when the job finishes */ + boost::optional _message; /** time that this job was started */ time_t _start_time;