1 /* 2 SPDX-FileCopyrightText: 2008-2010 Volker Lanz <vl@fidra.de> 3 SPDX-FileCopyrightText: 2016-2018 Andrius Štikonas <andrius@stikonas.eu> 4 SPDX-FileCopyrightText: 2019 Yuri Chornoivan <yurchor@ukr.net> 5 6 SPDX-License-Identifier: GPL-3.0-or-later 7 */ 8 9 #ifndef KPMCORE_COPYSOURCEFILE_H 10 #define KPMCORE_COPYSOURCEFILE_H 11 12 #include "core/copysource.h" 13 14 #include <QtGlobal> 15 #include <QFile> 16 17 class QString; 18 class CopyTarget; 19 20 /** A file to copy from. 21 22 Represents a file to copy from. Used to restore a FileSystem from a backup file. 23 24 @author Volker Lanz <vl@fidra.de> 25 */ 26 class CopySourceFile : public CopySource 27 { 28 public: 29 explicit CopySourceFile(const QString& filename); 30 31 public: 32 bool open() override; 33 qint64 length() const override; 34 overlaps(const CopyTarget &)35 bool overlaps(const CopyTarget&) const override { 36 return false; /**< @return false for file */ 37 } firstByte()38 qint64 firstByte() const override { 39 return 0; /**< @return 0 for file */ 40 } lastByte()41 qint64 lastByte() const override { 42 return length(); /**< @return equal to length for file. @see length() */ 43 } path()44 QString path() const override { 45 return m_File.fileName(); 46 } 47 48 protected: file()49 QFile& file() { 50 return m_File; 51 } file()52 const QFile& file() const { 53 return m_File; 54 } 55 56 protected: 57 QFile m_File; 58 }; 59 60 #endif 61