File indexing completed on 2024-11-10 04:32:44
0001 /* 0002 SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 #include "libruqolacore_export.h" 0009 #include "uploadfilejob.h" 0010 #include <QMap> 0011 #include <QObject> 0012 #include <QPointer> 0013 class RocketChatAccount; 0014 class LIBRUQOLACORE_EXPORT UploadFileManager : public QObject 0015 { 0016 Q_OBJECT 0017 public: 0018 explicit UploadFileManager(RocketChatAccount *account, QObject *parent = nullptr); 0019 ~UploadFileManager() override; 0020 0021 [[nodiscard]] int addUpload(const RocketChatRestApi::UploadFileJob::UploadFileInfo &info); 0022 0023 void cancelJob(int identifier); 0024 Q_SIGNALS: 0025 void uploadProgress(const RocketChatRestApi::UploadFileJob::UploadStatusInfo &info, int identifier, const QString &accountName); 0026 0027 private: 0028 LIBRUQOLACORE_NO_EXPORT void removeFile(const RocketChatRestApi::UploadFileJob::UploadFileInfo &info); 0029 RocketChatAccount *const mRocketChatAccount; 0030 QMap<int, QPointer<RocketChatRestApi::UploadFileJob>> mUploadMap; 0031 static int uploadIdentifier; 0032 };