File indexing completed on 2024-03-24 03:53:33

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef JOBMANAGER_H
0007 #define JOBMANAGER_H
0008 
0009 #include "jobqueue.h"
0010 #include "region.h"
0011 
0012 #include <QObject>
0013 #include <QVector>
0014 
0015 struct PendingJob {
0016     Region m_region;
0017     QString m_transport;
0018     QString m_profile;
0019 };
0020 
0021 class JobManager : public QObject
0022 {
0023     Q_OBJECT
0024 public:
0025     explicit JobManager(QObject *parent = nullptr);
0026     
0027     void run();
0028 
0029     void setRegionsFile(const QString &filename);
0030 
0031     void setResumeId(const QString &resumeId);
0032 
0033     void setJobParameters(const JobParameters &parameters);
0034 
0035 private Q_SLOTS:
0036     void update();
0037 
0038 private:
0039     void addJob(const PendingJob &region);
0040 
0041     JobQueue m_queue;
0042 
0043     JobParameters m_jobParameters;
0044 
0045     QFileInfo m_monavSettings;
0046 
0047     QVector<PendingJob> m_pendingJobs;
0048 
0049     QString m_resumeId;
0050 };
0051 
0052 #endif // JOBMANAGER_H