QXmpp  Version: 1.5.1
QXmppEncryptedFileSharingProvider.h
1 // SPDX-FileCopyrightText: 2022 Jonah BrĂ¼chert <jbb@kaidan.im>
2 // SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im>
3 //
4 // SPDX-License-Identifier: LGPL-2.1-or-later
5 
6 #ifndef QXMPPENCRYPTEDHTTPFILESHARINGPROVIDER_H
7 #define QXMPPENCRYPTEDHTTPFILESHARINGPROVIDER_H
8 
9 #include "QXmppEncryptedFileSource.h"
10 #include "QXmppHttpFileSharingProvider.h"
11 
13 class QXmppEncryptedFileSharingProviderPrivate;
14 
16 {
17 public:
19  using SourceType = QXmppEncryptedFileSource;
21 
22  QXmppEncryptedFileSharingProvider(QXmppFileSharingManager *manager, std::shared_ptr<QXmppFileSharingProvider> uploadBaseProvider);
24 
25  auto downloadFile(const std::any &source,
26  std::unique_ptr<QIODevice> target,
27  std::function<void(quint64, quint64)> reportProgress,
28  std::function<void(DownloadResult)> reportFinished) -> std::shared_ptr<Download> override;
29 
30  auto uploadFile(std::unique_ptr<QIODevice> source,
31  const QXmppFileMetadata &info,
32  std::function<void(quint64, quint64)> reportProgress,
33  std::function<void(UploadResult)> reportFinished) -> std::shared_ptr<Upload> override;
34 
35 private:
36  std::unique_ptr<QXmppEncryptedFileSharingProviderPrivate> d;
37 };
38 
39 #endif // QXMPPENCRYPTEDHTTPFILESHARINGPROVIDER_H
Definition: QXmppEncryptedFileSharingProvider.h:16
Represents an encrypted file source for file sharing.
Definition: QXmppEncryptedFileSource.h:21
Definition: QXmppFileMetadata.h:24
Definition: QXmppFileSharingManager.h:121
The interface of a provider for the QXmppFileSharingManager.
Definition: QXmppFileSharingProvider.h:32
virtual 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 >=0
Handles the upload of a file for this provider.
virtual auto downloadFile(const std::any &source, std::unique_ptr< QIODevice > target, std::function< void(quint64, quint64)> reportProgress, std::function< void(DownloadResult)> reportFinished) -> std::shared_ptr< Download >=0
Handles the download of files for this provider.
std::variant< QXmpp::Success, QXmpp::Cancelled, QXmppError > DownloadResult
Definition: QXmppFileSharingProvider.h:36
std::variant< std::any, QXmpp::Cancelled, QXmppError > UploadResult
Definition: QXmppFileSharingProvider.h:40