Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / SqlClient / SqlClientWrapperSmiStreamChars.cs / 1305376 / SqlClientWrapperSmiStreamChars.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace Microsoft.SqlServer.Server { using System; using System.Data.Common; using System.Data.SqlClient; using System.Data.SqlTypes; using System.Diagnostics; using System.IO; // Simple SqlStreamChars wrapper over SmiStream that handles server events on the // SqlClient side of Smi internal class SqlClientWrapperSmiStreamChars : SqlStreamChars { private SmiEventSink_Default _sink; private SmiStream _stream; internal SqlClientWrapperSmiStreamChars( SmiEventSink_Default sink, SmiStream stream ) { Debug.Assert( null != sink ); Debug.Assert( null != stream ); _sink = sink; _stream = stream; } public override bool IsNull { get { return null == _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(); if ( length > 0 ) return length / sizeof( char ); else return length; } } public override long Position { get { long position = _stream.GetPosition( _sink ) / sizeof( char ); _sink.ProcessMessagesAndThrow(); return position; } set { if ( value < 0 ) { throw ADP.ArgumentOutOfRange("Position"); } _stream.SetPosition( _sink, value * sizeof( char ) ); _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 * sizeof( char ), origin ); _sink.ProcessMessagesAndThrow(); return result; } public override void SetLength(long value) { if ( value < 0 ) { throw ADP.ArgumentOutOfRange("value"); } _stream.SetLength( _sink, value * sizeof( char ) ); _sink.ProcessMessagesAndThrow(); } public override int Read(char[] buffer, int offset, int count) { int bytesRead = _stream.Read( _sink, buffer, offset * sizeof( char ), count ); _sink.ProcessMessagesAndThrow(); return bytesRead; } public override void Write(char[] buffer, int offset, int count) { _stream.Write( _sink, buffer, offset, count ); _sink.ProcessMessagesAndThrow(); } // Convenience methods to allow simple pulling/pushing of raw bytes internal int Read(byte[] buffer, int offset, int count) { int bytesRead = _stream.Read( _sink, buffer, offset, count ); _sink.ProcessMessagesAndThrow(); return bytesRead; } internal 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RayMeshGeometry3DHitTestResult.cs
- PermissionSet.cs
- CqlIdentifiers.cs
- DoubleAnimationBase.cs
- BinaryConverter.cs
- PasswordDeriveBytes.cs
- UpDownBase.cs
- CompositeKey.cs
- RestrictedTransactionalPackage.cs
- WebPartCloseVerb.cs
- PersistenceTypeAttribute.cs
- DoubleIndependentAnimationStorage.cs
- SafeNativeMethods.cs
- XsltSettings.cs
- RectangleGeometry.cs
- VisualStyleTypesAndProperties.cs
- DataColumnMapping.cs
- DataControlReferenceCollection.cs
- Reference.cs
- GuidConverter.cs
- DbgCompiler.cs
- WindowsFormsSectionHandler.cs
- DataGridTextColumn.cs
- ListBindingHelper.cs
- PerspectiveCamera.cs
- FontSource.cs
- FixedDocument.cs
- QilChoice.cs
- WindowsButton.cs
- AsynchronousChannel.cs
- MasterPageCodeDomTreeGenerator.cs
- X509ServiceCertificateAuthentication.cs
- WebBrowserSiteBase.cs
- Viewport2DVisual3D.cs
- BuildProvidersCompiler.cs
- Int16KeyFrameCollection.cs
- StreamInfo.cs
- TemplatePropertyEntry.cs
- StretchValidation.cs
- Menu.cs
- OrderedHashRepartitionStream.cs
- OperatingSystem.cs
- ObjectView.cs
- SolidColorBrush.cs
- ReadWriteSpinLock.cs
- DeviceSpecificChoice.cs
- System.Data_BID.cs
- EastAsianLunisolarCalendar.cs
- LoginView.cs
- PathFigure.cs
- ExcludeFromCodeCoverageAttribute.cs
- TypeListConverter.cs
- ExpressionWriter.cs
- AssemblyResourceLoader.cs
- Triangle.cs
- RuntimeHelpers.cs
- NonDualMessageSecurityOverHttp.cs
- ErrorFormatter.cs
- XmlSchemaComplexType.cs
- XamlFilter.cs
- SqlConnectionStringBuilder.cs
- ListBoxItemAutomationPeer.cs
- ResumeStoryboard.cs
- InvalidOleVariantTypeException.cs
- FileChangeNotifier.cs
- TabControlToolboxItem.cs
- WebPartMinimizeVerb.cs
- ClassDataContract.cs
- SimpleRecyclingCache.cs
- Viewport3DAutomationPeer.cs
- AppDomainProtocolHandler.cs
- StaticContext.cs
- ArrangedElement.cs
- EdmProperty.cs
- FileNotFoundException.cs
- PopupRoot.cs
- TargetControlTypeAttribute.cs
- TextSchema.cs
- AudioDeviceOut.cs
- Paragraph.cs
- SecurityElement.cs
- DbgUtil.cs
- TimeStampChecker.cs
- DrawingDrawingContext.cs
- CompModSwitches.cs
- MatrixTransform.cs
- RuntimeWrappedException.cs
- Parameter.cs
- Exceptions.cs
- PrimitiveDataContract.cs
- HealthMonitoringSection.cs
- ReliableRequestSessionChannel.cs
- ProfileService.cs
- EpmTargetTree.cs
- FixUpCollection.cs
- TraceLevelStore.cs
- HtmlInputCheckBox.cs
- AssertHelper.cs
- ToolboxItemImageConverter.cs
- WorkflowServiceOperationListItem.cs