File indexing completed on 2024-05-05 14:26:27
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_INSERTPIECETABLECHANGE_HPP 0010 #define KPIECETABLE_INSERTPIECETABLECHANGE_HPP 0011 0012 // lib 0013 #include "abstractpiecetablechange.hpp" 0014 0015 namespace KPieceTable { 0016 0017 /** class 0018 * @author Friedrich W. H. Kossebau 0019 */ 0020 0021 class InsertPieceTableChange : public AbstractPieceTableChange 0022 { 0023 public: 0024 InsertPieceTableChange(Address insertOffset, Size insertLength, Address storageOffset); 0025 InsertPieceTableChange(const InsertPieceTableChange&) = delete; 0026 0027 ~InsertPieceTableChange() override; 0028 0029 InsertPieceTableChange& operator=(const InsertPieceTableChange&) = delete; 0030 0031 public: // AbstractPieceTableChange API 0032 int type() const override; 0033 QString description() const override; 0034 Address storageOffset() 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 Size dataSize() const override; 0040 0041 private: 0042 Address mInsertOffset; 0043 Size mInsertLength; 0044 Address mStorageOffset; 0045 }; 0046 0047 inline InsertPieceTableChange::InsertPieceTableChange(Address insertOffset, Size insertLength, Address storageOffset) 0048 : mInsertOffset(insertOffset) 0049 , mInsertLength(insertLength) 0050 , mStorageOffset(storageOffset) 0051 {} 0052 0053 } 0054 0055 #endif