File indexing completed on 2025-02-16 13:00:38
0001 /* This file is part of the KDE libraries 0002 SPDX-FileCopyrightText: 2021 Albert Astals Cid <aacid@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KZSTDFILTER_H 0008 #define KZSTDFILTER_H 0009 0010 #include <config-compression.h> 0011 0012 #if HAVE_ZSTD_SUPPORT 0013 0014 #include "kfilterbase.h" 0015 0016 #include <memory> 0017 0018 /** 0019 * Internal class used by KCompressionDevice 0020 * @internal 0021 */ 0022 class KZstdFilter : public KFilterBase 0023 { 0024 public: 0025 KZstdFilter(); 0026 ~KZstdFilter() override; 0027 0028 bool init(int) override; 0029 int mode() const override; 0030 bool terminate() override; 0031 void reset() override; 0032 bool readHeader() override 0033 { 0034 return true; 0035 } 0036 bool writeHeader(const QByteArray &) override 0037 { 0038 return true; 0039 } 0040 void setOutBuffer(char *data, uint maxlen) override; 0041 void setInBuffer(const char *data, uint size) override; 0042 int inBufferAvailable() const override; 0043 int outBufferAvailable() const override; 0044 Result uncompress() override; 0045 Result compress(bool finish) override; 0046 0047 private: 0048 class Private; 0049 const std::unique_ptr<Private> d; 0050 }; 0051 0052 #endif 0053 0054 #endif