diff base/src/java/util/zip/InflaterInputStream.d @ 27:1bf55a6eb092

Renamed java tree to base
author Frank Benoit <benoit@tionex.de>
date Sat, 21 Mar 2009 11:33:57 +0100
parents java/src/java/util/zip/InflaterInputStream.d@9b96950f2c3c
children f05e6e8b2f2d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/base/src/java/util/zip/InflaterInputStream.d	Sat Mar 21 11:33:57 2009 +0100
@@ -0,0 +1,141 @@
+/**
+ * Authors: Frank Benoit <keinfarbton@googlemail.com>
+ */
+module java.util.zip.InflaterInputStream;
+
+import java.lang.all;
+import java.io.InputStream;
+version(Tango){
+    import tango.io.compress.ZlibStream;
+    import tango.io.device.Conduit;
+    version(Windows){
+        version(build){
+            pragma(link,"zlib");
+        }
+    }
+} else { // Phobos
+    import std.zlib;
+}
+
+version(Tango){
+    class InputStreamWrapper : tango.io.model.IConduit.InputStream {
+
+        java.io.InputStream.InputStream istr;
+
+        this( java.io.InputStream.InputStream istr ){
+            this.istr = istr;
+        }
+
+        uint read (void[] dst){
+            int res = istr.read( cast(byte[])dst );
+            return res;
+        }
+
+        tango.io.model.IConduit.IConduit conduit (){
+            implMissing(__FILE__,__LINE__);
+            return null;
+        }
+
+        void close (){
+            istr.close();
+        }
+        tango.io.model.IConduit.InputStream input (){
+            implMissing(__FILE__,__LINE__);
+            return null;
+        }
+        long seek (long offset, Anchor anchor = Anchor.Begin){
+            implMissing(__FILE__,__LINE__);
+            return 0;
+        }
+        void[] load (size_t max = -1){
+            implMissing(__FILE__,__LINE__);
+            return null;
+        }
+        IOStream flush (){
+            implMissing(__FILE__,__LINE__);
+            return null;
+        }
+    }
+} else { // Phobos
+}
+
+
+public class InflaterInputStream : java.io.InputStream.InputStream {
+
+    alias java.io.InputStream.InputStream.read read;
+    alias java.io.InputStream.InputStream.skip skip;
+    alias java.io.InputStream.InputStream.available available;
+    alias java.io.InputStream.InputStream.close close;
+    alias java.io.InputStream.InputStream.mark mark;
+    alias java.io.InputStream.InputStream.reset reset;
+    alias java.io.InputStream.InputStream.markSupported markSupported;
+
+    protected byte[] buf;
+    protected int len;
+    package bool usesDefaultInflater = false;
+
+    version(Tango){
+        ZlibInput tangoIstr;
+    } else { // Phobos
+    }
+
+    public this ( java.io.InputStream.InputStream istr ){
+        version(Tango){
+            tangoIstr = new ZlibInput( new InputStreamWrapper(istr ));
+        } else { // Phobos
+            implMissing( __FILE__, __LINE__ );
+        }
+    }
+
+    public int read(){
+        version(Tango){
+            ubyte[1] data;
+            uint res = tangoIstr.read( data );
+            if( res !is 1 ){
+                return data[0] & 0xFF;
+            }
+            return -1;
+        } else { // Phobos
+            implMissing( __FILE__, __LINE__ );
+            return -1;
+        }
+    }
+
+    public int read( byte[] b, int off, int len ){
+        implMissing( __FILE__, __LINE__ );
+        return 0;
+    }
+
+    public int available(){
+        implMissing( __FILE__, __LINE__ );
+        return 0;
+    }
+
+    public long skip( long n ){
+        implMissing( __FILE__, __LINE__ );
+        return 0L;
+    }
+
+    public void close(){
+        implMissing( __FILE__, __LINE__ );
+    }
+
+    public void fill(){
+        implMissing( __FILE__, __LINE__ );
+    }
+
+    public bool markSupported(){
+        implMissing( __FILE__, __LINE__ );
+        return false;
+    }
+
+    public synchronized void mark( int readlimit ){
+        implMissing( __FILE__, __LINE__ );
+    }
+
+    public synchronized void reset(){
+        implMissing( __FILE__, __LINE__ );
+    }
+}
+
+