aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppHttpFileSharingProvider.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-10-02 02:45:09 +0200
committerLinus Jahn <lnj@kaidan.im>2022-10-02 23:01:13 +0200
commitb871f6d3557c20fc7d1456e5080c33ea90795c84 (patch)
treefda2457ed2728a4cd6d346bce8168523b88c2b15 /src/client/QXmppHttpFileSharingProvider.h
parent6ee26103c5383cef8664d9e7d19c96c83f9a89af (diff)
downloadqxmpp-b871f6d3557c20fc7d1456e5080c33ea90795c84.tar.gz
Generate QXmppUpload/Download only by FileSharingManager
Previously all the providers had to subclass the QXmppUpload/Download. It should be much easier to do additional tasks (e.g. hashing after downloading) now because the manager (and not the provider) decides when to emit the finished signal. Making the encrypted source provider able to handle arbitrary unencrypted sources should be possible too.
Diffstat (limited to 'src/client/QXmppHttpFileSharingProvider.h')
-rw-r--r--src/client/QXmppHttpFileSharingProvider.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/client/QXmppHttpFileSharingProvider.h b/src/client/QXmppHttpFileSharingProvider.h
index 748c1277..64329659 100644
--- a/src/client/QXmppHttpFileSharingProvider.h
+++ b/src/client/QXmppHttpFileSharingProvider.h
@@ -29,9 +29,13 @@ public:
~QXmppHttpFileSharingProvider() override;
auto downloadFile(const std::any &source,
- std::unique_ptr<QIODevice> &&target) -> std::shared_ptr<QXmppDownload> override;
- auto uploadFile(std::unique_ptr<QIODevice> data,
- const QXmppFileMetadata &info) -> std::shared_ptr<QXmppUpload> override;
+ std::unique_ptr<QIODevice> target,
+ std::function<void(quint64, quint64)> reportProgress,
+ std::function<void(DownloadResult)> reportFinished) -> std::shared_ptr<Download> override;
+ auto uploadFile(std::unique_ptr<QIODevice> source,
+ const QXmppFileMetadata &info,
+ std::function<void(quint64, quint64)> reportProgress,
+ std::function<void(UploadResult)> reportFinished) -> std::shared_ptr<Upload> override;
private:
std::unique_ptr<QXmppHttpFileSharingProviderPrivate> d;