diff options
Diffstat (limited to 'libjava/java/util/zip/Inflater.java')
-rw-r--r-- | libjava/java/util/zip/Inflater.java | 269 |
1 files changed, 0 insertions, 269 deletions
diff --git a/libjava/java/util/zip/Inflater.java b/libjava/java/util/zip/Inflater.java deleted file mode 100644 index c51cde8..0000000 --- a/libjava/java/util/zip/Inflater.java +++ /dev/null @@ -1,269 +0,0 @@ -/* Inflater.java - Decompress a data stream - Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package java.util.zip; - -import gnu.gcj.RawData; - -/* Written using on-line Java Platform 1.2 API Specification - * and JCL book. - * Believed complete and correct. - */ - -/** - * Inflater is used to decompress data that has been compressed according - * to the "deflate" standard described in rfc1950. - * - * The usage is as following. First you have to set some input with - * <code>setInput()</code>, then inflate() it. If inflate doesn't - * inflate any bytes there may be three reasons: - * <ul> - * <li>needsInput() returns true because the input buffer is empty. - * You have to provide more input with <code>setInput()</code>. - * NOTE: needsInput() also returns true when, the stream is finished. - * </li> - * <li>needsDictionary() returns true, you have to provide a preset - * dictionary with <code>setDictionary()</code>.</li> - * <li>finished() returns true, the inflater has finished.</li> - * </ul> - * Once the first output byte is produced, a dictionary will not be - * needed at a later stage. - * - * @author John Leuner, Jochen Hoenicke - * @author Tom Tromey - * @date May 17, 1999 - * @since JDK 1.1 - */ -public class Inflater -{ - // The zlib stream. - private RawData zstream; - - // True if finished. - private boolean is_finished; - - // True if dictionary needed. - private boolean dict_needed; - - /** - * Creates a new inflater. - */ - public Inflater () - { - this (false); - } - - /** - * Creates a new inflater. - * @param nowrap true if no header and checksum field appears in the - * stream. This is used for GZIPed input. For compatibility with - * Sun JDK you should provide one byte of input more than needed in - * this case. - */ - public Inflater (boolean noHeader) - { - init (noHeader); - } - - /** - * Finalizes this object. - */ - protected void finalize () - { - end (); - } - - /** - * Frees all objects allocated by the inflater. There's no reason - * to call this, since you can just rely on garbage collection (even - * for the Sun implementation). Exists only for compatibility - * with Sun's JDK, where the compressor allocates native memory. - * If you call any method (even reset) afterwards the behaviour is - * <i>undefined</i>. - * @deprecated Just clear all references to inflater instead. - */ - public native void end (); - - /** - * Returns true, if the inflater has finished. This means, that no - * input is needed and no output can be produced. - */ - public synchronized boolean finished () - { - return is_finished; - } - - /** - * Gets the adler checksum. This is either the checksum of all - * uncompressed bytes returned by inflate(), or if needsDictionary() - * returns true (and thus no output was yet produced) this is the - * adler checksum of the expected dictionary. - * @returns the adler checksum. - */ - public native int getAdler (); - - /** - * Gets the number of unprocessed input. Useful, if the end of the - * stream is reached and you want to further process the bytes after - * the deflate stream. - * @return the number of bytes of the input which were not processed. - */ - public native int getRemaining (); - - /** - * Gets the total number of processed compressed input bytes. - * @return the total number of bytes of processed input bytes. - */ - public native int getTotalIn (); - - /** - * Gets the total number of output bytes returned by inflate(). - * @return the total number of output bytes. - */ - public native int getTotalOut (); - - /** - * Inflates the compressed stream to the output buffer. If this - * returns 0, you should check, whether needsDictionary(), - * needsInput() or finished() returns true, to determine why no - * further output is produced. - * @param buffer the output buffer. - * @return the number of bytes written to the buffer, 0 if no further - * output can be produced. - * @exception DataFormatException if deflated stream is invalid. - * @exception IllegalArgumentException if buf has length 0. - */ - public int inflate (byte[] buf) throws DataFormatException - { - return inflate (buf, 0, buf.length); - } - - /** - * Inflates the compressed stream to the output buffer. If this - * returns 0, you should check, whether needsDictionary(), - * needsInput() or finished() returns true, to determine why no - * further output is produced. - * @param buffer the output buffer. - * @param off the offset into buffer where the output should start. - * @param len the maximum length of the output. - * @return the number of bytes written to the buffer, 0 if no further - * output can be produced. - * @exception DataFormatException if deflated stream is invalid. - * @exception IndexOutOfBoundsException if the off and/or len are wrong. - */ - public native int inflate (byte[] buf, int off, int len) - throws DataFormatException; - - private native void init (boolean noHeader); - - /** - * Returns true, if a preset dictionary is needed to inflate the input. - */ - public synchronized boolean needsDictionary () - { - return dict_needed; - } - - /** - * Returns true, if the input buffer is empty. - * You should then call setInput(). <br> - * - * <em>NOTE</em>: This method also returns true when the stream is finished. - */ - public synchronized boolean needsInput () - { - return getRemaining () == 0; - } - - /** - * Resets the inflater so that a new stream can be decompressed. All - * pending input and output will be discarded. - */ - public native void reset (); - - /** - * Sets the preset dictionary. This should only be called, if - * needsDictionary() returns true and it should set the same - * dictionary, that was used for deflating. The getAdler() - * function returns the checksum of the dictionary needed. - * @param buffer the dictionary. - * @exception IllegalStateException if no dictionary is needed. - * @exception IllegalArgumentException if the dictionary checksum is - * wrong. - */ - public void setDictionary (byte[] buf) - { - setDictionary (buf, 0, buf.length); - } - - /** - * Sets the preset dictionary. This should only be called, if - * needsDictionary() returns true and it should set the same - * dictionary, that was used for deflating. The getAdler() - * function returns the checksum of the dictionary needed. - * @param buffer the dictionary. - * @param off the offset into buffer where the dictionary starts. - * @param len the length of the dictionary. - * @exception IllegalStateException if no dictionary is needed. - * @exception IllegalArgumentException if the dictionary checksum is - * wrong. - * @exception IndexOutOfBoundsException if the off and/or len are wrong. - */ - public native void setDictionary (byte[] buf, int off, int len); - - /** - * Sets the input. This should only be called, if needsInput() - * returns true. - * @param buffer the input. - * @exception IllegalStateException if no input is needed. - */ - public void setInput (byte[] buf) - { - setInput (buf, 0, buf.length); - } - - /** - * Sets the input. This should only be called, if needsInput() - * returns true. - * @param buffer the input. - * @param off the offset into buffer where the input starts. - * @param len the length of the input. - * @exception IllegalStateException if no input is needed. - * @exception IndexOutOfBoundsException if the off and/or len are wrong. - */ - public native void setInput (byte[] buf, int off, int len); -} |