summaryrefslogtreecommitdiffstats
path: root/api/logic/net/NetAction.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-04-29 02:24:00 +0200
committerPetr Mrázek <peterix@gmail.com>2017-04-29 02:24:00 +0200
commite1465f4848d003cab3d3d1288c1a0f3b945083ee (patch)
tree6721fbaac70aa39cb0f0dd75b75e8e6f87d42743 /api/logic/net/NetAction.h
parent243f7e4fb4d58fa530404930566f83d1dc481588 (diff)
downloadMultiMC-e1465f4848d003cab3d3d1288c1a0f3b945083ee.tar
MultiMC-e1465f4848d003cab3d3d1288c1a0f3b945083ee.tar.gz
MultiMC-e1465f4848d003cab3d3d1288c1a0f3b945083ee.tar.lz
MultiMC-e1465f4848d003cab3d3d1288c1a0f3b945083ee.tar.xz
MultiMC-e1465f4848d003cab3d3d1288c1a0f3b945083ee.zip
NOISSUE refactor NetAction to be based on Task
Still missing some things, this is part 1.
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;
};