File indexing completed on 2023-09-24 04:08:31
0001 /* 0002 This file is part of the KDE libraries 0003 SPDX-FileCopyrightText: 2000 Stephan Kulow <coolo@kde.org> 0004 SPDX-FileCopyrightText: 2000-2009 David Faure <faure@kde.org> 0005 SPDX-FileCopyrightText: 2014 Mathias Tillman <master.homer@gmail.com> 0006 0007 SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #ifndef FILESYSTEMFREESPACEJOB_H 0011 #define FILESYSTEMFREESPACEJOB_H 0012 0013 #include "kiocore_export.h" 0014 #include "simplejob.h" 0015 0016 namespace KIO 0017 { 0018 class FileSystemFreeSpaceJobPrivate; 0019 /** 0020 * @class KIO::FileSystemFreeSpaceJob filesystemfreespacejob.h <KIO/FileSystemFreeSpaceJob> 0021 * 0022 * A KIO job that retrieves the total and available size of a filesystem. 0023 * @since 5.3 0024 */ 0025 class KIOCORE_EXPORT FileSystemFreeSpaceJob : public SimpleJob 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 ~FileSystemFreeSpaceJob() override; 0031 0032 Q_SIGNALS: 0033 /** 0034 * Signals the result 0035 * @param job the job that is redirected 0036 * @param size total amount of space 0037 * @param available amount of free space 0038 */ 0039 void result(KIO::Job *job, KIO::filesize_t size, KIO::filesize_t available); 0040 0041 protected Q_SLOTS: 0042 void slotFinished() override; 0043 0044 public: 0045 KIOCORE_NO_EXPORT explicit FileSystemFreeSpaceJob(FileSystemFreeSpaceJobPrivate &dd); 0046 0047 private: 0048 Q_DECLARE_PRIVATE(FileSystemFreeSpaceJob) 0049 }; 0050 0051 /** 0052 * Get a filesystem's total and available space. 0053 * 0054 * @param url Url to the filesystem. 0055 * @return the job handling the operation. 0056 */ 0057 KIOCORE_EXPORT FileSystemFreeSpaceJob *fileSystemFreeSpace(const QUrl &url); 0058 0059 } 0060 0061 #endif /* FILESYSTEMFREESPACEJOB_H */