aboutsummaryrefslogtreecommitdiff
path: root/launcher/net/Download.h
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2023-08-04 20:31:43 +0200
committerGitHub <noreply@github.com>2023-08-04 20:31:43 +0200
commit304e294ea701e595b21c0a8a8236ca53828f2b3b (patch)
tree66770810d344120899cf8ba07f279bac784f4877 /launcher/net/Download.h
parent50c7d39e082f0a7dbd977401e16d5adf534d9770 (diff)
parentf19e8dd086cd046c694a4a9a02d83827b08952b0 (diff)
downloadPrismLauncher-304e294ea701e595b21c0a8a8236ca53828f2b3b.tar.gz
PrismLauncher-304e294ea701e595b21c0a8a8236ca53828f2b3b.tar.bz2
PrismLauncher-304e294ea701e595b21c0a8a8236ca53828f2b3b.zip
Merge pull request #1102 from Ryex/refactor/net-split-headers-to-proxy-class
Diffstat (limited to 'launcher/net/Download.h')
-rw-r--r--launcher/net/Download.h47
1 files changed, 8 insertions, 39 deletions
diff --git a/launcher/net/Download.h b/launcher/net/Download.h
index 2e861732..5f6a5caf 100644
--- a/launcher/net/Download.h
+++ b/launcher/net/Download.h
@@ -38,57 +38,26 @@
#pragma once
-#include <chrono>
-
#include "HttpMetaCache.h"
-#include "NetAction.h"
-#include "Sink.h"
-#include "Validator.h"
#include "QObjectPtr.h"
+#include "net/NetRequest.h"
namespace Net {
-class Download : public NetAction {
+class Download : public NetRequest {
Q_OBJECT
-
public:
using Ptr = shared_qobject_ptr<class Download>;
- enum class Option { NoOptions = 0, AcceptLocalFiles = 1, MakeEternal = 2 };
- Q_DECLARE_FLAGS(Options, Option)
-
- public:
- ~Download() override = default;
+ explicit Download() : NetRequest() { logCat = taskDownloadLogC; }
+#if defined(LAUNCHER_APPLICATION)
static auto makeCached(QUrl url, MetaEntryPtr entry, Options options = Option::NoOptions) -> Download::Ptr;
+#endif
+
static auto makeByteArray(QUrl url, std::shared_ptr<QByteArray> output, Options options = Option::NoOptions) -> Download::Ptr;
static auto makeFile(QUrl url, QString path, Options options = Option::NoOptions) -> Download::Ptr;
- public:
- void addValidator(Validator* v);
- auto abort() -> bool override;
- auto canAbort() const -> bool override { return true; };
-
- private:
- auto handleRedirect() -> bool;
-
- protected slots:
- void downloadProgress(qint64 bytesReceived, qint64 bytesTotal) override;
- void downloadError(QNetworkReply::NetworkError error) override;
- void sslErrors(const QList<QSslError>& errors) override;
- void downloadFinished() override;
- void downloadReadyRead() override;
-
- public slots:
- void executeTask() override;
-
- private:
- std::unique_ptr<Sink> m_sink;
- Options m_options;
-
- std::chrono::steady_clock m_clock;
- std::chrono::time_point<std::chrono::steady_clock> m_last_progress_time;
- qint64 m_last_progress_bytes;
+ protected:
+ virtual QNetworkReply* getReply(QNetworkRequest&) override;
};
} // namespace Net
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(Net::Download::Options)