Mercurial > projects > dwt-linux
annotate dwt/dwthelper/InflaterInputStream.d @ 132:e22f9b443521
Working on ControlExample, png loading makes problems
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 21 Jan 2008 15:39:59 +0100 |
parents | 0c78fa47d476 |
children | 116d23207a86 |
rev | line source |
---|---|
12 | 1 /** |
2 * Authors: Frank Benoit <keinfarbton@googlemail.com> | |
3 */ | |
4 module dwt.dwthelper.InflaterInputStream; | |
5 | |
6 public import dwt.dwthelper.InputStream; | |
7 import dwt.dwthelper.utils; | |
132
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
8 import tango.io.Stdout; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
9 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
10 class InputStreamWrapper : tango.io.model.IConduit.InputStream { |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
11 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
12 dwt.dwthelper.InputStream.InputStream istr; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
13 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
14 this( dwt.dwthelper.InputStream.InputStream istr ){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
15 this.istr = istr; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
16 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
17 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
18 uint read (void[] dst){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
19 int res = istr.read( cast(byte[])dst, 0, dst.length ); |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
20 //Stdout.formatln( "read {}/{}", dst.length, res ); |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
21 return res; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
22 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
23 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
24 tango.io.model.IConduit.InputStream clear (){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
25 return this; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
26 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
27 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
28 tango.io.model.IConduit.IConduit conduit (){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
29 return null; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
30 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
31 |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
32 void close (){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
33 istr.close(); |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
34 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
35 } |
12 | 36 |
37 public class InflaterInputStream : dwt.dwthelper.InputStream.InputStream { | |
38 | |
39 alias dwt.dwthelper.InputStream.InputStream.read read; | |
40 alias dwt.dwthelper.InputStream.InputStream.skip skip; | |
41 alias dwt.dwthelper.InputStream.InputStream.available available; | |
42 alias dwt.dwthelper.InputStream.InputStream.close close; | |
43 alias dwt.dwthelper.InputStream.InputStream.mark mark; | |
44 alias dwt.dwthelper.InputStream.InputStream.reset reset; | |
45 alias dwt.dwthelper.InputStream.InputStream.markSupported markSupported; | |
46 | |
47 protected byte[] buf; | |
48 protected int len; | |
49 package bool usesDefaultInflater = false; | |
50 | |
132
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
51 InputStreamWrapper tangoIstr; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
52 |
12 | 53 public this ( dwt.dwthelper.InputStream.InputStream istr ){ |
132
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
54 tangoIstr = new InputStreamWrapper(istr ); |
12 | 55 } |
56 | |
57 public int read(){ | |
132
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
58 ubyte[1] data; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
59 uint res = tangoIstr.read( data ); |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
60 if( res !is tango.io.model.IConduit.IOStream.Eof ){ |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
61 return data[0] & 0xFF; |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
62 } |
e22f9b443521
Working on ControlExample, png loading makes problems
Frank Benoit <benoit@tionex.de>
parents:
12
diff
changeset
|
63 return -1; |
12 | 64 } |
65 | |
66 public int read( byte[] b, int off, int len ){ | |
67 implMissing( __FILE__, __LINE__ ); | |
68 return 0; | |
69 } | |
70 | |
71 public int available(){ | |
72 implMissing( __FILE__, __LINE__ ); | |
73 return 0; | |
74 } | |
75 | |
76 public long skip( long n ){ | |
77 implMissing( __FILE__, __LINE__ ); | |
78 return 0L; | |
79 } | |
80 | |
81 public void close(){ | |
82 implMissing( __FILE__, __LINE__ ); | |
83 } | |
84 | |
85 public void fill(){ | |
86 implMissing( __FILE__, __LINE__ ); | |
87 } | |
88 | |
89 public bool markSupported(){ | |
90 implMissing( __FILE__, __LINE__ ); | |
91 return false; | |
92 } | |
93 | |
94 public synchronized void mark( int readlimit ){ | |
95 implMissing( __FILE__, __LINE__ ); | |
96 } | |
97 | |
98 public synchronized void reset(){ | |
99 implMissing( __FILE__, __LINE__ ); | |
100 } | |
101 } | |
102 | |
103 |