Пример #1
0
bool JobQueue::isJobRequestAddable(const JobRequest &jobRequest, QString &notAddableReason)
{
    if (m_queue.contains(jobRequest)) {
        notAddableReason = "duplicate request in queue";
        return false;
    }

    if (isJobRunningForJobRequest(jobRequest)) {
        notAddableReason = "duplicate request for already running job";
        return false;
    }

    if (!m_documents.hasDocument(jobRequest.filePath)) {
        notAddableReason = "document already closed";
        return false;
    }

    const Document document = m_documents.document(jobRequest.filePath);
    if (!document.isIntact()) {
        notAddableReason = "document not intact";
        return false;
    }

    return true;
}
Пример #2
0
bool JobQueue::add(const JobRequest &job)
{
    if (m_queue.contains(job)) {
        qCDebug(jobsLog) << "Not adding duplicate request" << job;
        return false;
    }

    if (isJobRunningForJobRequest(job)) {
        qCDebug(jobsLog) << "Not adding duplicate request for already running job" << job;
        return false;
    }

    qCDebug(jobsLog) << "Adding" << job;
    m_queue.append(job);

    return true;
}