File indexing completed on 2024-04-28 11:40:54

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 */