KDECore
Go to the documentation of this file.
22#include <config-compression.h>
33 #define bzDecompressInit(x,y,z) BZ2_bzDecompressInit(x,y,z)
34 #define bzDecompressEnd(x) BZ2_bzDecompressEnd(x)
35 #define bzCompressEnd(x) BZ2_bzCompressEnd(x)
36 #define bzDecompress(x) BZ2_bzDecompress(x)
37 #define bzCompress(x,y) BZ2_bzCompress(x, y)
38 #define bzCompressInit(x,y,z,a) BZ2_bzCompressInit(x, y, z, a);
51class KBzip2Filter::Private
55 : isInitialized(false)
57 memset(&zStream, 0,
sizeof(zStream));
66KBzip2Filter::KBzip2Filter()
72KBzip2Filter::~KBzip2Filter()
77void KBzip2Filter::init(
int mode )
79 if (d->isInitialized) {
83 d->zStream.next_in = 0;
84 d->zStream.avail_in = 0;
85 if ( mode == QIODevice::ReadOnly )
87 (void)bzDecompressInit(&d->zStream, 0, 0);
90 }
else if ( mode == QIODevice::WriteOnly ) {
91 (void)bzCompressInit(&d->zStream, 5, 0, 0);
95 qWarning() <<
"Unsupported mode " << mode <<
". Only QIODevice::ReadOnly and QIODevice::WriteOnly supported";
99 d->isInitialized =
true;
102int KBzip2Filter::mode()
const
107void KBzip2Filter::terminate()
109 if (d->mode == QIODevice::ReadOnly) {
110 int result = bzDecompressEnd(&d->zStream);
113 }
else if (d->mode == QIODevice::WriteOnly) {
114 int result = bzCompressEnd(&d->zStream);
118 qWarning() <<
"Unsupported mode " << d->mode <<
". Only QIODevice::ReadOnly and QIODevice::WriteOnly supported";
121 d->isInitialized =
false;
125void KBzip2Filter::reset()
132void KBzip2Filter::setOutBuffer(
char * data, uint maxlen )
134 d->zStream.avail_out = maxlen;
135 d->zStream.next_out = data;
138void KBzip2Filter::setInBuffer(
const char *data,
unsigned int size )
140 d->zStream.avail_in = size;
141 d->zStream.next_in =
const_cast<char *
>(data);
144int KBzip2Filter::inBufferAvailable()
const
146 return d->zStream.avail_in;
149int KBzip2Filter::outBufferAvailable()
const
151 return d->zStream.avail_out;
154KBzip2Filter::Result KBzip2Filter::uncompress()
157 int result = bzDecompress(&d->zStream);
158 if ( result < BZ_OK )
160 kWarning() <<
"bzDecompress returned" << result;
173KBzip2Filter::Result KBzip2Filter::compress(
bool finish )
176 int result = bzCompress(&d->zStream, finish ? BZ_FINISH : BZ_RUN );
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by
doxygen 1.9.6 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.