diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-15 10:36:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-15 10:36:09 +0200 |
commit | 4b06255cc26933379107745d95f72097737d2a9b (patch) | |
tree | 60e00c8389bb2d8e4be492531beb788a253d1b6a /launcher/net/Download.h | |
parent | 3aba7f8fec45c7c87be486d8f6b5c96f69facf93 (diff) | |
parent | 1939e3e6ed3d2d2d4199d90154333cc8892eafeb (diff) | |
download | PrismLauncher-4b06255cc26933379107745d95f72097737d2a9b.tar.gz PrismLauncher-4b06255cc26933379107745d95f72097737d2a9b.tar.bz2 PrismLauncher-4b06255cc26933379107745d95f72097737d2a9b.zip |
Merge pull request #1486 from PrismLauncher/staging
Diffstat (limited to 'launcher/net/Download.h')
-rw-r--r-- | launcher/net/Download.h | 47 |
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) |