home *** CD-ROM | disk | FTP | other *** search
- package java.io;
-
- public class PipedReader extends Reader {
- PipedInputStream byteSink;
- private byte[] buf;
- private int leftOver;
-
- public PipedReader() {
- this.byteSink = new PipedInputStream();
- super.lock = this.byteSink;
- }
-
- public PipedReader(PipedWriter var1) throws IOException {
- this();
- this.connect(var1);
- }
-
- private void ensureOpen() throws IOException {
- if (this.byteSink == null) {
- throw new IOException("Stream closed");
- }
- }
-
- public void connect(PipedWriter var1) throws IOException {
- Object var2 = super.lock;
- synchronized(var2){}
-
- try {
- this.ensureOpen();
- var1.connect(this);
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
-
- public int read(char[] var1, int var2, int var3) throws IOException {
- Object var5 = super.lock;
- synchronized(var5){}
-
- int var4;
- try {
- this.ensureOpen();
- int var7 = this.leftOver + var3 * 2;
- if (this.buf == null || this.buf.length < var7) {
- this.buf = new byte[var7];
- }
-
- int var8 = this.byteSink.read(this.buf, this.leftOver, var7);
- if (var8 >= 0) {
- var8 += this.leftOver;
-
- for(int var9 = 0; var9 < var8; var9 += 2) {
- var1[var9 >> 1] = (char)((this.buf[var9] & 255) << 8 | this.buf[var9 + 1] & 255);
- }
-
- if (var8 % 2 != 0) {
- this.buf[0] = this.buf[var8 - 1];
- this.leftOver = 1;
- } else {
- this.leftOver = 0;
- }
-
- var4 = var8 / 2;
- return var4;
- }
-
- var4 = -1;
- } catch (Throwable var11) {
- throw var11;
- }
-
- return var4;
- }
-
- public void close() throws IOException {
- Object var1 = super.lock;
- synchronized(var1){}
-
- try {
- if (this.byteSink != null) {
- this.byteSink.close();
- this.byteSink = null;
- return;
- }
- } catch (Throwable var4) {
- throw var4;
- }
-
- }
- }
-