File indexing completed on 2024-05-12 05:22:20

0001 /*
0002  * This file is part of LibKGAPI library
0003  *
0004  * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #pragma once
0010 
0011 #include "fileabstractdatajob.h"
0012 #include "kgapidrive_export.h"
0013 
0014 #include <QMap>
0015 
0016 namespace KGAPI2
0017 {
0018 
0019 namespace Drive
0020 {
0021 
0022 class KGAPIDRIVE_EXPORT FileCopyJob : public KGAPI2::Drive::FileAbstractDataJob
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     explicit FileCopyJob(const QString &sourceFileId, const FilePtr &destinationFile, const AccountPtr &account, QObject *parent = nullptr);
0028     explicit FileCopyJob(const FilePtr &sourceFile, const FilePtr &destinationFile, const AccountPtr &account, QObject *parent = nullptr);
0029     explicit FileCopyJob(const QMap<QString /* source file id */, FilePtr /* destination file */> &files, const AccountPtr &account, QObject *parent = nullptr);
0030     explicit FileCopyJob(const QMap<FilePtr /* source file */, FilePtr /* destination file */> &files, const AccountPtr &account, QObject *parent = nullptr);
0031     ~FileCopyJob() override;
0032 
0033     [[nodiscard]] FilesList files() const;
0034 
0035 protected:
0036     void handleReply(const QNetworkReply *reply, const QByteArray &rawData) override;
0037 
0038     void dispatchRequest(QNetworkAccessManager *accessManager, const QNetworkRequest &request, const QByteArray &data, const QString &contentType) override;
0039     void start() override;
0040 
0041 private:
0042     class Private;
0043     Private *const d;
0044     friend class Private;
0045 };
0046 
0047 } // namespace Drive
0048 
0049 } // namespace KGAPI2