00001 using System;
00002 using System.IO;
00003
00004 namespace Tamir.Streams
00005 {
00009 public class PipedStream : Stream
00010 {
00011 PipedInputStream pins;
00012 PipedOutputStream pouts;
00013
00014 public PipedStream(PipedInputStream pins, PipedOutputStream pouts)
00015 {
00016 this.pins = pins;
00017 this.pouts = pouts;
00018 }
00019
00020 public override int Read(byte[] buffer, int offset, int count)
00021 {
00022 return pins.read(buffer, offset, count);
00023 }
00024
00025 public override int ReadByte()
00026 {
00027 return pins.read();
00028 }
00029
00030 public override void WriteByte(byte value)
00031 {
00032 pouts.write(value);
00033 }
00034
00035
00036 public override void Write(byte[] buffer, int offset, int count)
00037 {
00038 pouts.write(buffer, offset, count);
00039 }
00040 public override void Close()
00041 {
00042 base.Close ();
00043 pins.close();
00044 pouts.close();
00045 }
00046 public override bool CanRead
00047 {
00048 get
00049 {
00050 return true;
00051 }
00052 }
00053 public override bool CanWrite
00054 {
00055 get
00056 {
00057 return true;
00058 }
00059 }
00060 public override bool CanSeek
00061 {
00062 get
00063 {
00064 return false;
00065 }
00066 }
00067 public override void Flush()
00068 {
00069
00070 }
00071 public override long Length
00072 {
00073 get
00074 {
00075 return 0;
00076 }
00077 }
00078 public override long Position
00079 {
00080 get
00081 {
00082 return 0;
00083 }
00084 set
00085 {
00086 }
00087 }
00088 public override void SetLength(long value)
00089 {
00090
00091 }
00092 public override long Seek(long offset, SeekOrigin origin)
00093 {
00094 return 0;
00095 }
00096 }
00097 }