File indexing completed on 2024-05-12 05:48:10
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org> 0003 0004 #pragma once 0005 0006 #include <QIODevice> 0007 #include <QUrl> 0008 0009 #include "busobject.h" 0010 0011 namespace KIO 0012 { 0013 class FileJob; 0014 } // namespace KIO 0015 0016 class File : public BusObject 0017 { 0018 Q_OBJECT 0019 Q_CLASSINFO("D-Bus Interface", "org.kde.kio.admin.File") 0020 public: 0021 File(const QUrl &url, QIODevice::OpenMode openMode, const QString &remoteService, const QDBusObjectPath &objectPath, QObject *parent = nullptr); 0022 0023 public Q_SLOTS: 0024 void open(); 0025 void read(qulonglong size); 0026 void write(const QByteArray &data); 0027 void close(); 0028 void seek(qulonglong offset); 0029 void truncate(qulonglong length); 0030 qulonglong size(); 0031 0032 Q_SIGNALS: 0033 void opened(); 0034 void data(const QByteArray &data); 0035 void mimeTypeFound(const QString &mimeType); 0036 void written(qulonglong written); 0037 void closed(); 0038 void positionChanged(qulonglong offset); 0039 void truncated(qulonglong length); 0040 void result(int error, const QString &errorMessage); 0041 0042 private: 0043 KIO::FileJob *m_job = nullptr; 0044 QUrl m_url; 0045 QIODevice::OpenMode m_openMode; 0046 };