summaryrefslogtreecommitdiffstats
path: root/api/logic/net/NetAction.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/net/NetAction.h')
-rw-r--r--api/logic/net/NetAction.h68
1 files changed, 8 insertions, 60 deletions
diff --git a/api/logic/net/NetAction.h b/api/logic/net/NetAction.h
index a533c317..13966a5c 100644
--- a/api/logic/net/NetAction.h
+++ b/api/logic/net/NetAction.h
@@ -15,6 +15,8 @@
#pragma once
+#include "tasks/Task.h"
+
#include <QObject>
#include <QUrl>
#include <memory>
@@ -23,82 +25,28 @@
#include "multimc_logic_export.h"
-enum JobStatus
-{
- Job_NotStarted,
- Job_InProgress,
- Job_Finished,
- Job_Failed,
- Job_Aborted,
- Job_Failed_Proceed
-};
-
typedef std::shared_ptr<class NetAction> NetActionPtr;
-class MULTIMC_LOGIC_EXPORT NetAction : public QObject
+class MULTIMC_LOGIC_EXPORT NetAction : public Task
{
Q_OBJECT
protected:
- explicit NetAction() : QObject(0) {};
+ explicit NetAction(QObject *parent = 0) : Task(parent) {};
public:
virtual ~NetAction() {};
public:
- virtual qint64 totalProgress() const
- {
- return m_total_progress;
- }
- virtual qint64 currentProgress() const
- {
- return m_progress;
- }
- virtual qint64 numberOfFailures() const
- {
- return m_failures;
- }
- virtual bool abort()
- {
- return false;
- }
- virtual bool canAbort()
- {
- return false;
- }
-
-public:
- /// the network reply
unique_qobject_ptr<QNetworkReply> m_reply;
-
- /// source URL
QUrl m_url;
-
- /// The file's status
- JobStatus m_status = Job_NotStarted;
-
- /// index within the parent job
- int m_index_within_job = 0;
-
- qint64 m_progress = 0;
- qint64 m_total_progress = 1;
-
- /// number of failures up to this point
- int m_failures = 0;
+ Status m_status = Status::NotStarted;
signals:
- void started(int index);
- void netActionProgress(int index, qint64 current, qint64 total);
- void succeeded(int index);
- void failed(int index);
- void aborted(int index);
+ void failed();
+ void aborted();
-protected
-slots:
+protected slots:
virtual void downloadProgress(qint64 bytesReceived, qint64 bytesTotal) = 0;
virtual void downloadError(QNetworkReply::NetworkError error) = 0;
virtual void downloadFinished() = 0;
virtual void downloadReadyRead() = 0;
-
-public
-slots:
- virtual void start() = 0;
};