class Film;
class Playlist;
-extern void wait_for_jobs ();
+extern bool wait_for_jobs ();
/** @class JobManager
* @brief A simple scheduler for jobs.
class JobManager : public Signaller, public boost::noncopyable
{
public:
-
boost::shared_ptr<Job> add (boost::shared_ptr<Job>);
std::list<boost::shared_ptr<Job> > get () const;
bool work_to_do () const;
bool errors () const;
+ void increase_priority (boost::shared_ptr<Job>);
+ void decrease_priority (boost::shared_ptr<Job>);
void analyse_audio (
boost::shared_ptr<const Film> film,
);
boost::signals2::signal<void (boost::weak_ptr<Job>)> JobAdded;
+ boost::signals2::signal<void ()> JobsReordered;
boost::signals2::signal<void (boost::optional<std::string>, boost::optional<std::string>)> ActiveJobsChanged;
static JobManager* instance ();
private:
/* This function is part of the test suite */
- friend void ::wait_for_jobs ();
+ friend bool ::wait_for_jobs ();
JobManager ();
~JobManager ();
void scheduler ();
void start ();
+ void priority_changed ();
mutable boost::mutex _mutex;
+ /** List of jobs in the order that they will be executed */
std::list<boost::shared_ptr<Job> > _jobs;
bool _terminate;