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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlFacetAttribute.cs
- HebrewCalendar.cs
- PeerOutputChannel.cs
- StyleModeStack.cs
- Propagator.JoinPropagator.cs
- ObjectMemberMapping.cs
- DispatcherExceptionFilterEventArgs.cs
- TypeSystemProvider.cs
- SplineKeyFrames.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ItemCollection.cs
- SslStream.cs
- ClonableStack.cs
- InstanceLockQueryResult.cs
- DuplicateWaitObjectException.cs
- SqlFacetAttribute.cs
- EncoderParameters.cs
- GeometryHitTestResult.cs
- SimpleBitVector32.cs
- WindowsProgressbar.cs
- AVElementHelper.cs
- WebPartDescription.cs
- SystemKeyConverter.cs
- StringBuilder.cs
- EnumType.cs
- DataGridViewCellFormattingEventArgs.cs
- VisualProxy.cs
- SiteMapNodeItemEventArgs.cs
- SmtpNetworkElement.cs
- OleDbStruct.cs
- XPathNavigatorReader.cs
- PropertyChangingEventArgs.cs
- WindowPattern.cs
- CopyNodeSetAction.cs
- RoutedEventConverter.cs
- DoubleCollection.cs
- IERequestCache.cs
- ColorConvertedBitmap.cs
- KeyPressEvent.cs
- SqlDataSourceCache.cs
- ResourcePart.cs
- IUnknownConstantAttribute.cs
- ObjectDataSourceDisposingEventArgs.cs
- SafeNativeMethods.cs
- MetadataSource.cs
- DetailsViewInsertEventArgs.cs
- SynchronousSendBindingElement.cs
- IndentedWriter.cs
- SchemaCompiler.cs
- DataSetSchema.cs
- CorrelationValidator.cs
- Help.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- DllNotFoundException.cs
- namescope.cs
- Brushes.cs
- DeflateEmulationStream.cs
- CodeCatchClause.cs
- NGCSerializationManager.cs
- StackSpiller.Generated.cs
- CheckPair.cs
- WpfPayload.cs
- XmlSchemaSearchPattern.cs
- UnmanagedMemoryStream.cs
- Selector.cs
- Executor.cs
- HttpAsyncResult.cs
- TargetConverter.cs
- QueryModel.cs
- Error.cs
- ProfilePropertySettingsCollection.cs
- CSharpCodeProvider.cs
- SqlBulkCopyColumnMapping.cs
- TextTreeText.cs
- RawAppCommandInputReport.cs
- PluralizationServiceUtil.cs
- TextHidden.cs
- StateInitializationDesigner.cs
- WindowsFont.cs
- NameValueSectionHandler.cs
- RowBinding.cs
- CodeGenerator.cs
- Variable.cs
- ImplicitInputBrush.cs
- KerberosTicketHashIdentifierClause.cs
- ContextQuery.cs
- WebPart.cs
- WebDescriptionAttribute.cs
- FromRequest.cs
- PointConverter.cs
- MsmqBindingFilter.cs
- SoapHelper.cs
- DiscreteKeyFrames.cs
- EventSinkActivity.cs
- DataGridViewCheckBoxColumn.cs
- IntSecurity.cs
- updatecommandorderer.cs
- SequenceDesigner.cs
- TypeSystem.cs
- SqlServer2KCompatibilityCheck.cs