SqlCharStream.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / SQLTypes / SqlCharStream.cs / 1 / SqlCharStream.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
// junfang 
// [....]
// [....] 
//----------------------------------------------------------------------------- 

//************************************************************************* 
// @File: SqlStreamChars.cs
//
// Create by:	JunFang
// 
// Description:
// 
// Notes: 
//	
// History: 
//
//   04/17/01  JunFang	Created.
//
// @EndHeader@ 
//*************************************************************************
 
namespace System.Data.SqlTypes 
 	{
	using System; 
	using System.IO;
	using System.Runtime.InteropServices;
 	using System.Data.SqlTypes;
 
#if WINFSInternalOnly
    public 
#else 
    internal
#endif 
	abstract class SqlStreamChars: System.Data.SqlTypes.INullable, IDisposable
 		{
 		public abstract bool IsNull { get; }
 
		public abstract bool CanRead { get; }
 
 		public abstract bool CanSeek { get; } 

		public abstract bool CanWrite { get; } 

		public abstract long Length { get; }

		public abstract long Position { get; set; } 

 		// -------------------------------------------------------------- 
		//	  Public methods 
 		// -------------------------------------------------------------
 		public abstract int Read (char[] buffer, int offset, int count); 

		public abstract void Write (char[] buffer, int offset, int count);

 		public abstract long Seek (long offset, SeekOrigin origin); 

		public abstract void SetLength (long value); 
 
		public abstract void Flush ();
 
		public virtual void Close(){
 			Dispose(true);
		}
 
 		void IDisposable.Dispose() {
            Dispose(true); 
        } 

 		protected virtual void Dispose(bool disposing) { 
		}

 		public virtual int ReadChar()
			{ 
			// Reads one char from the stream by calling Read(char[], int, int).
			// Will return an char cast to an int or -1 on end of stream. 
 			// The performance of the default implementation on Stream is bad, 
			// and any subclass with an internal buffer should override this method.
 			char[] oneCharArray = new char[1]; 
 			int r = Read(oneCharArray, 0, 1);
			if (r==0)
 				return -1;
			return oneCharArray[0]; 
			}
 
		public virtual void WriteChar(char value) 
 			{
			// Writes one char from the stream by calling Write(char[], int, int). 
 			// The performance of the default implementation on Stream is bad,
 			// and any subclass with an internal buffer should override this method.
			char[] oneCharArray = new char[1];
 			oneCharArray[0] = value; 
			Write(oneCharArray, 0, 1);
			} 
 

		// Private class: the Null SqlStreamChars 
 		private class NullSqlStreamChars : SqlStreamChars
			{
 			// --------------------------------------------------------------
 			//	  Constructor(s) 
			// --------------------------------------------------------------
 
 			internal NullSqlStreamChars() 
				{
				} 


			// -------------------------------------------------------------
 			//	  Public properties 
			// --------------------------------------------------------------
 
 			public override bool IsNull 
 				{
				get 
 					{
					return true;
					}
				} 

 			public override bool CanRead 
				{ 
 				get
 					{ 
					return false;
 					}
				}
 
			public override bool CanSeek
				{ 
 				get 
					{
 					return false; 
 					}
				}

 			public override bool CanWrite 
				{
				get 
					{ 
 					return false;
					} 
 				}

 			public override long Length
				{ 
 				get
					{ 
					throw new SqlNullValueException(); 
					}
 				} 

			public override long Position
 				{
 				get 
					{
 					throw new SqlNullValueException(); 
					} 
				set
					{ 
 					throw new SqlNullValueException();
					}
 				}
 
 			// -------------------------------------------------------------
			//	  Public methods 
 			// ------------------------------------------------------------- 
			public override int Read (char[] buffer, int offset, int count)
				{ 
				throw new SqlNullValueException();
 				}

			public override void Write (char[] buffer, int offset, int count) 
 				{
 				throw new SqlNullValueException(); 
				} 

 			public override long Seek (long offset, SeekOrigin origin) 
				{
				throw new SqlNullValueException();
				}
 
 			public override void SetLength (long value)
				{ 
 				throw new SqlNullValueException(); 
 				}
 
			public override void Flush ()
 				{
				throw new SqlNullValueException();
				} 

			public override void Close () 
 				{ 
				}
 
 			} // class NullSqlStreamChars


 		// The Null instance 
		public static SqlStreamChars Null {
                    get { 
                        return new NullSqlStreamChars(); 
                    }
 		} 

		} // class SqlStreamChars

	} // namespace System.Data.SqlTypes 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK