File indexing completed on 2024-05-05 14:26:28
0001 /* 0002 This file is part of the Okteta Core library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef KPIECETABLE_REMOVEPIECETABLECHANGE_HPP 0010 #define KPIECETABLE_REMOVEPIECETABLECHANGE_HPP 0011 0012 // lib 0013 #include "abstractpiecetablechange.hpp" 0014 #include "piecelist.hpp" 0015 0016 namespace KPieceTable { 0017 0018 /** class 0019 * @author Friedrich W. H. Kossebau 0020 */ 0021 0022 class RemovePieceTableChange : public AbstractPieceTableChange 0023 { 0024 public: 0025 RemovePieceTableChange(const AddressRange& removeRange, const PieceList& removedPieces); 0026 RemovePieceTableChange(const RemovePieceTableChange&) = delete; 0027 0028 ~RemovePieceTableChange() override; 0029 0030 RemovePieceTableChange& operator=(const RemovePieceTableChange&) = delete; 0031 0032 public: // AbstractPieceTableChange API 0033 int type() const override; 0034 QString description() const override; 0035 bool merge(const AbstractPieceTableChange* other) override; 0036 AddressRange apply(PieceTable* pieceTable) const override; 0037 AddressRange revert(PieceTable* pieceTable) const override; 0038 ArrayChangeMetrics metrics() const override; 0039 0040 private: 0041 AddressRange mRemoveRange; 0042 PieceList mRemovedPieces; 0043 }; 0044 0045 inline RemovePieceTableChange::RemovePieceTableChange(const AddressRange& removeRange, const PieceList& removedPieces) 0046 : mRemoveRange(removeRange) 0047 , mRemovedPieces(removedPieces) 0048 {} 0049 } 0050 0051 #endif