diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2009-09-25 22:48:34 -0400 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2009-09-25 22:49:54 -0400 |
commit | 7d6f8dd73aff7046fdc57b39790ae88bfb46955d (patch) | |
tree | 07e5391b6fe1b1d389d1130f19adcb63f6c4f08e /jobqueue.cpp | |
parent | DVDDrive class. (diff) | |
download | AnyRip-7d6f8dd73aff7046fdc57b39790ae88bfb46955d.tar.xz AnyRip-7d6f8dd73aff7046fdc57b39790ae88bfb46955d.zip |
Finished framework and added job stubs.
Diffstat (limited to 'jobqueue.cpp')
-rw-r--r-- | jobqueue.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/jobqueue.cpp b/jobqueue.cpp new file mode 100644 index 0000000..c18ffee --- /dev/null +++ b/jobqueue.cpp @@ -0,0 +1,31 @@ +#include "jobqueue.h" +#include "job.h" + +#include <QDebug> + +JobQueue::JobQueue(QObject *parent) : + QObject(parent), + m_jobIsRunning(false) +{ +} +void JobQueue::addJob(Job *job) +{ + m_queue.enqueue(job); + if (!m_jobIsRunning) + runNextJob(); +} +void JobQueue::runNextJob() +{ + if (m_queue.isEmpty()) + return; + m_jobIsRunning = true; + Job *job = m_queue.dequeue(); + qDebug() << "running job" << job->jobType() << "for video" << qobject_cast<Video*>(job->parent())->title(); + connect(job, SIGNAL(completed(bool)), this, SLOT(jobCompleted())); + job->runJob(); +} +void JobQueue::jobCompleted() +{ + m_jobIsRunning = false; + runNextJob(); +} |