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 };