+ void set_progress (float, bool force = false);
+ void sub (std::string);
+ boost::optional<float> progress () const;
+ boost::optional<float> seconds_since_last_progress_update () const;
+
+ std::shared_ptr<const Film> film () const {
+ return _film;
+ }
+
+ enum class Result {
+ RESULT_OK,
+ RESULT_ERROR, // we can't have plain ERROR on Windows
+ RESULT_CANCELLED
+ };
+
+ void when_finished(boost::signals2::connection& connection, std::function<void(Result)> finished);