Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / SqlClient / SqlClientWrapperSmiStream.cs / 1 / SqlClientWrapperSmiStream.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace Microsoft.SqlServer.Server {
using System;
using System.Data.Common;
using System.Diagnostics;
using System.IO;
// Simple wrapper over SmiStream that handles server events on the SqlClient side of Smi
internal class SqlClientWrapperSmiStream : Stream {
private SmiEventSink_Default _sink;
private SmiStream _stream;
internal SqlClientWrapperSmiStream( SmiEventSink_Default sink, SmiStream stream ) {
Debug.Assert( null != sink );
Debug.Assert( null != stream );
_sink = sink;
_stream = stream;
}
public override bool CanRead {
get {
return _stream.CanRead;
}
}
// If CanSeek is false, Position, Seek, Length, and SetLength should throw.
public override bool CanSeek {
get {
return _stream.CanSeek;
}
}
public override bool CanWrite {
get {
return _stream.CanWrite;
}
}
public override long Length {
get {
long length = _stream.GetLength( _sink );
_sink.ProcessMessagesAndThrow();
return length;
}
}
public override long Position {
get {
long position = _stream.GetPosition( _sink );
_sink.ProcessMessagesAndThrow();
return position;
}
set {
_stream.SetPosition( _sink, value );
_sink.ProcessMessagesAndThrow();
}
}
public override void Flush() {
_stream.Flush( _sink );
_sink.ProcessMessagesAndThrow();
}
public override long Seek(long offset, SeekOrigin origin) {
long result = _stream.Seek( _sink, offset, origin );
_sink.ProcessMessagesAndThrow();
return result;
}
public override void SetLength(long value) {
_stream.SetLength( _sink, value );
_sink.ProcessMessagesAndThrow();
}
public override int Read(byte[] buffer, int offset, int count) {
int bytesRead = _stream.Read( _sink, buffer, offset, count );
_sink.ProcessMessagesAndThrow();
return bytesRead;
}
public override void Write(byte[] buffer, int offset, int count) {
_stream.Write( _sink, buffer, offset, count );
_sink.ProcessMessagesAndThrow();
}
}
}
// 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
- CmsUtils.cs
- AtomicFile.cs
- StandardCommandToolStripMenuItem.cs
- SelectionItemPatternIdentifiers.cs
- DataSourceCollectionBase.cs
- SemaphoreSlim.cs
- EnumerableCollectionView.cs
- ExternalFile.cs
- InvalidFilterCriteriaException.cs
- BindingMAnagerBase.cs
- CapabilitiesPattern.cs
- DataGridViewCheckBoxColumn.cs
- AdapterUtil.cs
- DataContractAttribute.cs
- NativeMethods.cs
- SQLUtility.cs
- XmlUnspecifiedAttribute.cs
- DataKeyArray.cs
- ComponentCollection.cs
- Int16KeyFrameCollection.cs
- SchemaMapping.cs
- WebPartEditorCancelVerb.cs
- XmlValidatingReaderImpl.cs
- WebPartEventArgs.cs
- ModuleConfigurationInfo.cs
- Vector3D.cs
- GlyphingCache.cs
- ActiveXContainer.cs
- AudioBase.cs
- TextRangeEditTables.cs
- CalendarDataBindingHandler.cs
- StringPropertyBuilder.cs
- DataRelationCollection.cs
- KnownTypesHelper.cs
- ExtractorMetadata.cs
- ScrollViewerAutomationPeer.cs
- StructuredTypeInfo.cs
- ScrollContentPresenter.cs
- PropertyCondition.cs
- ReaderWriterLockWrapper.cs
- DataViewSettingCollection.cs
- SqlDataSourceSelectingEventArgs.cs
- PropertyItem.cs
- TemplateApplicationHelper.cs
- MonitoringDescriptionAttribute.cs
- ZoneIdentityPermission.cs
- SafeFileMappingHandle.cs
- Nodes.cs
- DesignerToolboxInfo.cs
- UserMapPath.cs
- PriorityItem.cs
- Dynamic.cs
- CodeSnippetExpression.cs
- RequiredFieldValidator.cs
- IndicFontClient.cs
- DriveNotFoundException.cs
- SharedPersonalizationStateInfo.cs
- RadioButton.cs
- Menu.cs
- GridViewPageEventArgs.cs
- SerialReceived.cs
- IpcChannel.cs
- XmlILConstructAnalyzer.cs
- UpdateTracker.cs
- DataBinder.cs
- GroupItem.cs
- PreloadedPackages.cs
- ErrorWebPart.cs
- PropertyDescriptor.cs
- ILGenerator.cs
- WinInet.cs
- TimeSpan.cs
- EnumDataContract.cs
- UserNameServiceElement.cs
- RIPEMD160.cs
- Attachment.cs
- IgnoreSectionHandler.cs
- DeviceSpecificChoice.cs
- ExpandoObject.cs
- TableItemProviderWrapper.cs
- CurrencyManager.cs
- RestHandlerFactory.cs
- ResourceDisplayNameAttribute.cs
- UpdateProgress.cs
- ComponentSerializationService.cs
- TempFiles.cs
- PermissionToken.cs
- xmlsaver.cs
- Margins.cs
- ReflectionUtil.cs
- OutOfMemoryException.cs
- XmlAttributeAttribute.cs
- BitmapImage.cs
- DocumentGridContextMenu.cs
- DataBoundControlHelper.cs
- PieceDirectory.cs
- SelectorAutomationPeer.cs
- ParameterModifier.cs
- BitmapDecoder.cs
- InternalBase.cs