refactor: organize a little more the code in launcher/net/
This also reduces some code duplication by using some Task logic in NetAction.
This commit is contained in:
@ -1,28 +1,30 @@
|
||||
#pragma once
|
||||
#include "Sink.h"
|
||||
|
||||
#include <QSaveFile>
|
||||
|
||||
#include "Sink.h"
|
||||
|
||||
namespace Net {
|
||||
class FileSink : public Sink
|
||||
{
|
||||
public: /* con/des */
|
||||
FileSink(QString filename);
|
||||
virtual ~FileSink();
|
||||
class FileSink : public Sink {
|
||||
public:
|
||||
FileSink(QString filename) : m_filename(filename){};
|
||||
virtual ~FileSink() = default;
|
||||
|
||||
public: /* methods */
|
||||
JobStatus init(QNetworkRequest & request) override;
|
||||
JobStatus write(QByteArray & data) override;
|
||||
JobStatus abort() override;
|
||||
JobStatus finalize(QNetworkReply & reply) override;
|
||||
bool hasLocalData() override;
|
||||
public:
|
||||
auto init(QNetworkRequest& request) -> Task::State override;
|
||||
auto write(QByteArray& data) -> Task::State override;
|
||||
auto abort() -> Task::State override;
|
||||
auto finalize(QNetworkReply& reply) -> Task::State override;
|
||||
|
||||
protected: /* methods */
|
||||
virtual JobStatus initCache(QNetworkRequest &);
|
||||
virtual JobStatus finalizeCache(QNetworkReply &reply);
|
||||
auto hasLocalData() -> bool override;
|
||||
|
||||
protected: /* data */
|
||||
protected:
|
||||
virtual auto initCache(QNetworkRequest&) -> Task::State;
|
||||
virtual auto finalizeCache(QNetworkReply& reply) -> Task::State;
|
||||
|
||||
protected:
|
||||
QString m_filename;
|
||||
bool wroteAnyData = false;
|
||||
std::unique_ptr<QSaveFile> m_output_file;
|
||||
};
|
||||
}
|
||||
} // namespace Net
|
||||
|
Reference in New Issue
Block a user