diff options
Diffstat (limited to 'src/com/isode/stroke/compress/ZLibDecompressor.java')
-rw-r--r-- | src/com/isode/stroke/compress/ZLibDecompressor.java | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/src/com/isode/stroke/compress/ZLibDecompressor.java b/src/com/isode/stroke/compress/ZLibDecompressor.java index 2c78a57..82b9035 100644 --- a/src/com/isode/stroke/compress/ZLibDecompressor.java +++ b/src/com/isode/stroke/compress/ZLibDecompressor.java @@ -1,35 +1,24 @@ /* + * Copyright (c) 2010 Remko Tron¨on + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ +/* * Copyright (c) 2011, Isode Limited, London, England. * All rights reserved. */ package com.isode.stroke.compress; -import com.isode.stroke.base.ByteArray; -import java.util.zip.DataFormatException; -import java.util.zip.Inflater; +import com.jcraft.jzlib.JZlib; -/** - * - * @author Kev - */ -public class ZLibDecompressor { - Inflater inflater_ = new Inflater(); - public ByteArray process(ByteArray data) throws ZLibException { - try { - inflater_.setInput(data.getData()); - byte[] output = new byte[100]; - ByteArray result = new ByteArray(); - int size = 0; - while ((size = inflater_.inflate(output)) != 0) { - for (int i = 0; i < size; i++) { - result.append(output[i]); /* TODO: Terribly slow */ - } - } - return result; - } - catch (DataFormatException e) { - throw new ZLibException(); - } +public class ZLibDecompressor extends ZLibCodecompressor { + + public ZLibDecompressor() { + int result = stream_.inflateInit(); + assert (result == JZlib.Z_OK); } + protected int processZStream() { + return stream_.inflate(JZlib.Z_SYNC_FLUSH); + } } |