PatchSet 4076 Date: 2003/09/29 01:47:45 Author: dalibor Branch: HEAD Tag: (none) Log: Merged in java.util.zip.Checked*putStream from GNU Classpath
Members: ChangeLog:1.1671->1.1672 libraries/javalib/java/util/zip/CheckedInputStream.java:1.1->1.2 libraries/javalib/java/util/zip/CheckedOutputStream.java:1.1->1.2 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.1671 kaffe/ChangeLog:1.1672 --- kaffe/ChangeLog:1.1671 Mon Sep 29 00:38:57 2003 +++ kaffe/ChangeLog Mon Sep 29 01:47:45 2003 @@ -1,5 +1,11 @@ 2003-09-29 Dalibor Topic <[EMAIL PROTECTED]> + * libraries/javalib/java/util/zip/CheckedInputStream.java, + libraries/javalib/java/util/zip/CheckedOutputStream.java: + Replaced by implementation from GNU Classpath. + +2003-09-29 Dalibor Topic <[EMAIL PROTECTED]> + * libraries/javalib/java/util/zip/ZipConstants.java: Merged in from GNU Classpath to get the right constant names. Index: kaffe/libraries/javalib/java/util/zip/CheckedInputStream.java diff -u kaffe/libraries/javalib/java/util/zip/CheckedInputStream.java:1.1 kaffe/libraries/javalib/java/util/zip/CheckedInputStream.java:1.2 --- kaffe/libraries/javalib/java/util/zip/CheckedInputStream.java:1.1 Tue Jul 14 17:02:10 1998 +++ kaffe/libraries/javalib/java/util/zip/CheckedInputStream.java Mon Sep 29 01:47:46 2003 @@ -1,51 +1,134 @@ -/* - * Java core library component. - * - * Copyright (c) 1997, 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ +/* CheckedInputStream.java - Compute checksum of data being read + Copyright (C) 1999, 2000 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 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 java.io.InputStream; import java.io.FilterInputStream; +import java.io.InputStream; import java.io.IOException; -public class CheckedInputStream extends FilterInputStream { - -private Checksum cksum; - -public CheckedInputStream(InputStream in, Checksum sum) -{ - super(in); - cksum = sum; -} - -public Checksum getChecksum() -{ - return (cksum); -} +/* Written using on-line Java Platform 1.2 API Specification + * and JCL book. + * Believed complete and correct. + */ -public int read() throws IOException +/** + * InputStream that computes a checksum of the data being read using a + * supplied Checksum object. + * + * @see Checksum + * + * @author Tom Tromey + * @date May 17, 1999 + */ +public class CheckedInputStream extends FilterInputStream { - int bval = in.read(); - if (bval == -1) { - return (-1); - } - cksum.update(bval); - return (bval); -} + /** + * Creates a new CheckInputStream on top of the supplied OutputStream + * using the supplied Checksum. + */ + public CheckedInputStream (InputStream in, Checksum sum) + { + super (in); + this.sum = sum; + } + + /** + * Returns the Checksum object used. To get the data checksum computed so + * far call <code>getChecksum.getValue()</code>. + */ + public Checksum getChecksum () + { + return sum; + } + + /** + * Reads one byte, updates the checksum and returns the read byte + * (or -1 when the end of file was reached). + */ + public int read () throws IOException + { + int x = in.read(); + if (x != -1) + sum.update(x); + return x; + } + + /** + * Reads at most len bytes in the supplied buffer and updates the checksum + * with it. Returns the number of bytes actually read or -1 when the end + * of file was reached. + */ + public int read (byte[] buf, int off, int len) throws IOException + { + int r = in.read(buf, off, len); + if (r != -1) + sum.update(buf, off, r); + return r; + } + + /** + * Skips n bytes by reading them in a temporary buffer and updating the + * the checksum with that buffer. Returns the actual number of bytes skiped + * which can be less then requested when the end of file is reached. + */ + public long skip (long n) throws IOException + { + if (n == 0) + return 0; + + int min = (int) Math.min(n, 1024); + byte[] buf = new byte[min]; + + long s = 0; + while (n > 0) + { + int r = in.read(buf, 0, min); + if (r == -1) + break; + n -= r; + s += r; + min = (int) Math.min(n, 1024); + sum.update(buf, 0, r); + } -public int read(byte[] buf, int off, int len) throws IOException -{ - int total = in.read(buf, off, len); - if (total > 0) { - cksum.update(buf, off, total); - } - return (total); -} + return s; + } + /** The checksum object. */ + private Checksum sum; } Index: kaffe/libraries/javalib/java/util/zip/CheckedOutputStream.java diff -u kaffe/libraries/javalib/java/util/zip/CheckedOutputStream.java:1.1 kaffe/libraries/javalib/java/util/zip/CheckedOutputStream.java:1.2 --- kaffe/libraries/javalib/java/util/zip/CheckedOutputStream.java:1.1 Tue Jul 14 17:02:10 1998 +++ kaffe/libraries/javalib/java/util/zip/CheckedOutputStream.java Mon Sep 29 01:47:46 2003 @@ -1,12 +1,39 @@ -/* - * Java core library component. - * - * Copyright (c) 1997, 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - */ +/* CheckedOutputStream.java - Compute checksum of data being written. + Copyright (C) 1999, 2000 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 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; @@ -14,31 +41,59 @@ import java.io.OutputStream; import java.io.IOException; -public class CheckedOutputStream extends FilterOutputStream { - -private Checksum cksum; - -public CheckedOutputStream(OutputStream out, Checksum sum) -{ - super(out); - cksum = sum; -} - -public Checksum getChecksum() -{ - return (cksum); -} - -public void write(int bval) throws IOException -{ - out.write(bval); - cksum.update(bval); -} +/* Written using on-line Java Platform 1.2 API Specification + * and JCL book. + * Believed complete and correct. + */ -public void write(byte[] buf, int off, int len) throws IOException +/** + * OutputStream that computes a checksum of data being written using a + * supplied Checksum object. + * + * @see Checksum + * + * @author Tom Tromey + * @date May 17, 1999 + */ +public class CheckedOutputStream extends FilterOutputStream { - out.write(buf, off, len); - cksum.update(buf, off, len); -} + /** + * Creates a new CheckInputStream on top of the supplied OutputStream + * using the supplied Checksum. + */ + public CheckedOutputStream (OutputStream out, Checksum cksum) + { + super (out); + this.sum = cksum; + } + + /** + * Returns the Checksum object used. To get the data checksum computed so + * far call <code>getChecksum.getValue()</code>. + */ + public Checksum getChecksum () + { + return sum; + } + + /** + * Writes one byte to the OutputStream and updates the Checksum. + */ + public void write (int bval) throws IOException + { + out.write(bval); + sum.update(bval); + } + + /** + * Writes the byte array to the OutputStream and updates the Checksum. + */ + public void write (byte[] buf, int off, int len) throws IOException + { + out.write(buf, off, len); + sum.update(buf, off, len); + } + /** The checksum object. */ + private Checksum sum; } _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe