| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | 
							- using System;
 
- using System.IO;
 
- namespace SharpCifs.Util.Sharpen
 
- {
 
-     public class InputStream : IDisposable
 
- 	{
 
- 		private long _mark;
 
- 		protected Stream Wrapped;
 
- 		protected Stream BaseStream;
 
- 		public static implicit operator InputStream (Stream s)
 
- 		{
 
- 			return Wrap (s);
 
- 		}
 
- 		public static implicit operator Stream (InputStream s)
 
- 		{
 
- 			return s.GetWrappedStream ();
 
- 		}
 
- 		public virtual int Available ()
 
- 		{
 
- 		    if (Wrapped is WrappedSystemStream)
 
- 				return ((WrappedSystemStream)Wrapped).InputStream.Available ();
 
- 		    return 0;
 
- 		}
 
- 	    public virtual void Close ()
 
- 		{
 
- 			if (Wrapped != null) {
 
-                 //Stream.`Close` method deleted
 
- 				//Wrapped.Close ();
 
-                 Wrapped.Dispose();
 
-             }
 
- 		}
 
- 		public void Dispose ()
 
- 		{
 
- 			Close ();
 
- 		}
 
-         internal Stream GetWrappedStream ()
 
-         {
 
- 			// Always create a wrapper stream (not directly Wrapped) since the subclass
 
- 			// may be overriding methods that need to be called when used through the Stream class
 
- 			return new WrappedSystemStream (this);
 
- 		}
 
- 		public virtual void Mark (int readlimit)
 
- 		{
 
- 			if (Wrapped is WrappedSystemStream)
 
- 				((WrappedSystemStream)Wrapped).InputStream.Mark (readlimit);
 
- 			else {
 
- 				if (BaseStream is WrappedSystemStream)
 
- 					((WrappedSystemStream)BaseStream).OnMark (readlimit);
 
- 				if (Wrapped != null)
 
- 					_mark = Wrapped.Position;
 
- 			}
 
- 		}
 
- 		
 
- 		public virtual bool MarkSupported ()
 
- 		{
 
- 		    if (Wrapped is WrappedSystemStream)
 
- 				return ((WrappedSystemStream)Wrapped).InputStream.MarkSupported ();
 
- 		    return ((Wrapped != null) && Wrapped.CanSeek);
 
- 		}
 
- 	    public virtual int Read ()
 
- 		{
 
- 			if (Wrapped == null) {
 
- 				throw new NotImplementedException ();
 
- 			}
 
- 			return Wrapped.ReadByte ();
 
- 		}
 
- 		public virtual int Read (byte[] buf)
 
- 		{
 
- 			return Read (buf, 0, buf.Length);
 
- 		}
 
- 		public virtual int Read (byte[] b, int off, int len)
 
- 		{
 
- 			if (Wrapped is WrappedSystemStream)
 
- 				return ((WrappedSystemStream)Wrapped).InputStream.Read (b, off, len);
 
- 			
 
- 			if (Wrapped != null) {
 
- 				int num = Wrapped.Read (b, off, len);
 
- 				return ((num <= 0) ? -1 : num);
 
- 			}
 
- 			int totalRead = 0;
 
- 			while (totalRead < len) {
 
- 				int nr = Read ();
 
- 				if (nr == -1)
 
- 					return -1;
 
- 				b[off + totalRead] = (byte)nr;
 
- 				totalRead++;
 
- 			}
 
- 			return totalRead;
 
- 		}
 
- 		public virtual void Reset ()
 
- 		{
 
- 			if (Wrapped is WrappedSystemStream)
 
- 				((WrappedSystemStream)Wrapped).InputStream.Reset ();
 
- 			else {
 
- 				if (Wrapped == null)
 
- 					throw new IOException ();
 
- 				Wrapped.Position = _mark;
 
- 			}
 
- 		}
 
- 		public virtual long Skip (long cnt)
 
- 		{
 
- 			if (Wrapped is WrappedSystemStream)
 
- 				return ((WrappedSystemStream)Wrapped).InputStream.Skip (cnt);
 
- 			
 
- 			long n = cnt;
 
- 			while (n > 0) {
 
- 				if (Read () == -1)
 
- 					return cnt - n;
 
- 				n--;
 
- 			}
 
- 			return cnt - n;
 
- 		}
 
- 		
 
- 		internal virtual bool CanSeek ()
 
- 		{
 
- 		    if (Wrapped != null)
 
- 				return Wrapped.CanSeek;
 
- 		    return false;
 
- 		}
 
- 	    internal virtual long Position {
 
- 			get
 
- 			{
 
- 			    if (Wrapped != null)
 
- 					return Wrapped.Position;
 
- 			    throw new NotSupportedException ();
 
- 			}
 
- 	        set {
 
- 				if (Wrapped != null)
 
- 					Wrapped.Position = value;
 
- 				else
 
- 					throw new NotSupportedException ();
 
- 			}
 
- 		}
 
-         public virtual long Length
 
-         {
 
-             get
 
-             {
 
-                 if (Wrapped != null)
 
-                 {
 
-                     return Wrapped.Length;    
 
-                 }
 
-                 throw new NotSupportedException();
 
-             }
 
-         }
 
- 		static internal InputStream Wrap (Stream s)
 
- 		{
 
- 			InputStream stream = new InputStream ();
 
- 			stream.Wrapped = s;
 
- 			return stream;
 
- 		}
 
- 	}
 
- }
 
 
  |