KDECore
Go to the documentation of this file.
22 #include <config-compression.h>
24 #if HAVE_BZIP2_SUPPORT
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);
45 #include <qiodevice.h>
51 class KBzip2Filter::Private
55 : isInitialized(false)
57 memset(&zStream, 0,
sizeof(zStream));
66 KBzip2Filter::KBzip2Filter()
72 KBzip2Filter::~KBzip2Filter()
77 void 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;
102 int KBzip2Filter::mode()
const
107 void 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;
125 void KBzip2Filter::reset()
132 void KBzip2Filter::setOutBuffer(
char * data, uint maxlen )
134 d->zStream.avail_out = maxlen;
135 d->zStream.next_out = data;
138 void KBzip2Filter::setInBuffer(
const char *data,
unsigned int size )
140 d->zStream.avail_in = size;
141 d->zStream.next_in =
const_cast<char *
>(data);
144 int KBzip2Filter::inBufferAvailable()
const
146 return d->zStream.avail_in;
149 int KBzip2Filter::outBufferAvailable()
const
151 return d->zStream.avail_out;
154 KBzip2Filter::Result KBzip2Filter::uncompress()
157 int result = bzDecompress(&d->zStream);
158 if ( result < BZ_OK )
160 kWarning() <<
"bzDecompress returned" << result;
173 KBzip2Filter::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-2013 The KDE developers.
Generated on Wed Mar 20 2013 07:14:33 by
doxygen 1.8.3.1 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.