File indexing completed on 2024-05-12 04:59:45
0001 /* 0002 This file is part of the KMTP framework, part of the KDE project. 0003 0004 SPDX-FileCopyrightText: 2018 Andreas Krutzler <andreas.krutzler@gmx.net> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef KMTPSTORAGEINTERFACE_H 0010 #define KMTPSTORAGEINTERFACE_H 0011 0012 #include "kmtpfile.h" 0013 #include "storageinterface.h" 0014 0015 class KMTPDeviceInterface; 0016 0017 /** 0018 * @brief The KMTPStorageInterface class 0019 * 0020 * @note This interface should be a public API. 0021 */ 0022 class KMTPStorageInterface : public QObject 0023 { 0024 Q_OBJECT 0025 Q_PROPERTY(QString description READ description) 0026 Q_PROPERTY(quint64 maxCapacity READ maxCapacity) 0027 Q_PROPERTY(quint64 freeSpaceInBytes READ freeSpaceInBytes) 0028 0029 public: 0030 explicit KMTPStorageInterface(const QString &dbusObjectPath, KMTPDeviceInterface *parent); 0031 0032 QString description() const; 0033 quint64 maxCapacity() const; 0034 quint64 freeSpaceInBytes() const; 0035 0036 private: 0037 org::kde::kmtp::Storage *m_dbusInterface; 0038 0039 public Q_SLOTS: 0040 // file management 0041 KMTPFileList getFilesAndFolders(const QString &path, int &result) const; 0042 std::variant<QDBusObjectPath, QDBusError> getFilesAndFolders2(const QString &path) const; 0043 KMTPFile getFileMetadata(const QString &path) const; 0044 0045 int getFileToHandler(const QString &path) const; 0046 int getFileToFileDescriptor(const QDBusUnixFileDescriptor &descriptor, const QString &sourcePath) const; 0047 0048 int sendFileFromFileDescriptor(const QDBusUnixFileDescriptor &descriptor, const QString &destinationPath) const; 0049 0050 int setFileName(const QString &path, const QString &newName) const; 0051 0052 // folder management 0053 quint32 createFolder(const QString &path) const; 0054 0055 // object management 0056 int deleteObject(const QString &path) const; 0057 0058 Q_SIGNALS: 0059 void dataReady(const QByteArray &data); 0060 void copyProgress(qulonglong transferredBytes, qulonglong totalBytes); 0061 void copyFinished(int result); 0062 }; 0063 0064 #endif // KMTPSTORAGEINTERFACE_H