File indexing completed on 2024-04-28 05:45:55

0001 /*
0002     SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de>
0003     SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
0004     SPDX-FileCopyrightText: 2016 Andrius Štikonas <andrius@stikonas.eu>
0005 
0006     SPDX-License-Identifier: GPL-3.0-or-later
0007 */
0008 
0009 #ifndef KPMCORE_SHREDFILESYSTEMJOB_H
0010 #define KPMCORE_SHREDFILESYSTEMJOB_H
0011 
0012 #include "jobs/job.h"
0013 
0014 #include <QString>
0015 
0016 class Partition;
0017 class Device;
0018 class Report;
0019 
0020 /** Securely delete and shred a FileSystem.
0021 
0022     Shreds (overwrites with random data) a FileSystem on given Partition and Device.
0023 
0024     @author Volker Lanz <vl@fidra.de>
0025 */
0026 class ShredFileSystemJob : public Job
0027 {
0028 public:
0029     ShredFileSystemJob(Device& d, Partition& p, bool randomShred);
0030 
0031 public:
0032     bool run(Report& parent) override;
0033     qint32 numSteps() const override;
0034     QString description() const override;
0035 
0036 protected:
0037     Partition& partition() {
0038         return m_Partition;
0039     }
0040     const Partition& partition() const {
0041         return m_Partition;
0042     }
0043 
0044     Device& device() {
0045         return m_Device;
0046     }
0047     const Device& device() const {
0048         return m_Device;
0049     }
0050 
0051 private:
0052     Device& m_Device;
0053     Partition& m_Partition;
0054     bool m_RandomShred;
0055 };
0056 
0057 #endif