File indexing completed on 2023-05-30 09:06:28
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 ®ion, const JobParameters ¶meters, 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