File indexing completed on 2024-04-14 03:50:29

0001 /* This file is part of the KDE libraries
0002    SPDX-FileCopyrightText: 2011 Mario Bensi <mbensi@ipsquad.net>
0003 
0004    Based on kbzip2filter:
0005    SPDX-FileCopyrightText: 2000, 2009 David Faure <faure@kde.org>
0006 
0007    SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009 
0010 #ifndef __knonefilter__h
0011 #define __knonefilter__h
0012 
0013 #include "kfilterbase.h"
0014 
0015 /**
0016  * Internal class used by KCompressionDevice
0017  *
0018  * This header is not installed.
0019  *
0020  * @internal
0021  */
0022 class KNoneFilter : public KFilterBase
0023 {
0024 public:
0025     KNoneFilter();
0026     ~KNoneFilter() override;
0027 
0028     bool init(int mode) override;
0029     int mode() const override;
0030     bool terminate() override;
0031     void reset() override;
0032     bool readHeader() override; // this is about the GZIP header
0033     bool writeHeader(const QByteArray &fileName) override;
0034     void setOutBuffer(char *data, uint maxlen) override;
0035     void setInBuffer(const char *data, uint size) override;
0036     int inBufferAvailable() const override;
0037     int outBufferAvailable() const override;
0038     Result uncompress() override;
0039     Result compress(bool finish) override;
0040 
0041 private:
0042     Result copyData();
0043 
0044     class Private;
0045     Private *const d;
0046 };
0047 
0048 #endif