File indexing completed on 2024-03-24 15:23:36

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef JOB_H
0007 #define JOB_H
0008 
0009 #include "jobparameters.h"
0010 #include "region.h"
0011 
0012 #include <QObject>
0013 #include <QRunnable>
0014 #include <QFileInfo>
0015 
0016 class Job : public QObject, public QRunnable
0017 {
0018     Q_OBJECT
0019 public:
0020     enum Status {
0021         Waiting,
0022         Downloading,
0023         Routing,
0024         Search,
0025         Packaging,
0026         Uploading,
0027         Finished,
0028         Error
0029     };
0030 
0031     explicit Job(const Region &region, const JobParameters &parameters, QObject *parent = nullptr);
0032 
0033     Status status() const;
0034 
0035     QString statusMessage() const;
0036 
0037     Region region() const;
0038 
0039     void setTransport(const QString &transport);
0040 
0041     QString transport() const;
0042 
0043     void setProfile(const QString &profile);
0044 
0045     void setMonavSettings(const QString &filename);
0046 
0047     bool operator==(const Job &other) const;
0048 
0049     void run() override;
0050 
0051 Q_SIGNALS:
0052     void finished(Job* job);
0053     
0054 private:
0055     void changeStatus(Status status, const QString &message);
0056 
0057     bool download();
0058 
0059     bool monav();
0060 
0061     bool search();
0062 
0063     bool package();
0064 
0065     bool upload();
0066 
0067     bool cleanup();
0068 
0069     QFileInfo osmFile();
0070 
0071     QFileInfo monavDir();
0072 
0073     QFileInfo targetFile();
0074 
0075     QFileInfo searchFile();
0076 
0077     Status m_status;
0078 
0079     Region m_region;
0080 
0081     JobParameters m_parameters;
0082 
0083     QString m_statusMessage;
0084 
0085     QString m_transport;
0086 
0087     QString m_profile;
0088 
0089     QString m_monavSettings;
0090 };
0091 
0092 #endif // JOB_H