00001 using System;
00002 using System.IO;
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 namespace Tamir.Streams
00035 {
00041 public class ProtectedConsoleStream : System.IO.Stream
00042 {
00043 Stream s;
00044 public ProtectedConsoleStream(Stream s)
00045 {
00046 if((s.GetType() != Type.GetType("System.IO.__ConsoleStream"))&&
00047 (s.GetType() != Type.GetType("System.IO.FileStream")))
00048 {
00049 throw new ArgumentException("Not ConsoleStream");
00050 }
00051 this.s=s;
00052 }
00053
00054
00055
00056
00057
00058
00059 public override int Read(byte[] buffer, int offset, int count)
00060 {
00061 if(count > 256)
00062 count = 256;
00063 return s.Read(buffer, offset, count);
00064 }
00065
00066 public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
00067 {
00068 return s.BeginRead (buffer, offset, count, callback, state);
00069 }
00070
00071 public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
00072 {
00073 return s.BeginWrite (buffer, offset, count, callback, state);
00074 }
00075
00076 public override bool CanRead
00077 {
00078 get
00079 {
00080 return s.CanRead;
00081 }
00082 }
00083
00084 public override bool CanSeek
00085 {
00086 get
00087 {
00088 return s.CanSeek;
00089 }
00090 }
00091 public override bool CanWrite
00092 {
00093 get
00094 {
00095 return s.CanWrite;
00096 }
00097 }
00098 public override void Close()
00099 {
00100 s.Close ();
00101 }
00102 public override System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
00103 {
00104 return s.CreateObjRef (requestedType);
00105 }
00106 public override int EndRead(IAsyncResult asyncResult)
00107 {
00108 return s.EndRead (asyncResult);
00109 }
00110 public override void EndWrite(IAsyncResult asyncResult)
00111 {
00112 s.EndWrite (asyncResult);
00113 }
00114 public override bool Equals(object obj)
00115 {
00116 return s.Equals (obj);
00117 }
00118 public override void Flush()
00119 {
00120 s.Flush();
00121 }
00122 public override int GetHashCode()
00123 {
00124 return s.GetHashCode ();
00125 }
00126 public override object InitializeLifetimeService()
00127 {
00128 return s.InitializeLifetimeService ();
00129 }
00130 public override long Length
00131 {
00132 get
00133 {
00134 return s.Length;
00135 }
00136 }
00137 public override long Position
00138 {
00139 get
00140 {
00141 return s.Position;
00142 }
00143 set
00144 {
00145 s.Position = value;
00146 }
00147 }
00148 public override int ReadByte()
00149 {
00150 return s.ReadByte ();
00151 }
00152 public override long Seek(long offset, SeekOrigin origin)
00153 {
00154 return s.Seek(offset, origin);
00155 }
00156 public override void SetLength(long value)
00157 {
00158 s.SetLength(value);
00159 }
00160 public override string ToString()
00161 {
00162 return s.ToString ();
00163 }
00164 public override void Write(byte[] buffer, int offset, int count)
00165 {
00166 s.Write(buffer, offset, count);
00167 }
00168 public override void WriteByte(byte value)
00169 {
00170 s.WriteByte (value);
00171 }
00172
00173 }
00174 }