#pragma once #include "Sink.h" #include namespace Net { class FileSink : public Sink { public: /* con/des */ FileSink(QString filename); virtual ~FileSink(); public: /* methods */ JobStatus init(QNetworkRequest & request) override; JobStatus write(QByteArray & data) override; JobStatus abort() override; JobStatus finalize(QNetworkReply & reply) override; bool hasLocalData() override; protected: /* methods */ virtual JobStatus initCache(QNetworkRequest &); virtual JobStatus finalizeCache(QNetworkReply &reply); protected: /* data */ QString m_filename; bool wroteAnyData = false; std::unique_ptr m_output_file; }; }