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
- BrushValueSerializer.cs
- ExtensionDataObject.cs
- ItemsControlAutomationPeer.cs
- DependencyObjectValidator.cs
- TableLayout.cs
- XPathScanner.cs
- MetadataCache.cs
- KerberosReceiverSecurityToken.cs
- DependencyPropertyAttribute.cs
- Variable.cs
- DbReferenceCollection.cs
- URL.cs
- ActivityCodeDomSerializer.cs
- MessageLoggingElement.cs
- SiteMapNodeCollection.cs
- ClientCultureInfo.cs
- ThumbAutomationPeer.cs
- UIElementParaClient.cs
- Scripts.cs
- WindowsListViewItem.cs
- WmiEventSink.cs
- ChannelSinkStacks.cs
- MenuRendererStandards.cs
- TimeoutValidationAttribute.cs
- SolidBrush.cs
- TabControl.cs
- SimpleTextLine.cs
- CodeDomDecompiler.cs
- DataGridHeaderBorder.cs
- TextServicesCompartment.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- TextRunCache.cs
- RenderTargetBitmap.cs
- EventProxy.cs
- DataBindingHandlerAttribute.cs
- ToolboxComponentsCreatingEventArgs.cs
- WsatConfiguration.cs
- VisualBasicExpressionConverter.cs
- NetworkInformationPermission.cs
- ButtonFieldBase.cs
- UriWriter.cs
- FloaterParaClient.cs
- TransactionFormatter.cs
- PackageRelationshipSelector.cs
- DeclaredTypeElementCollection.cs
- HtmlInputFile.cs
- DataGridParentRows.cs
- RemoteArgument.cs
- SudsWriter.cs
- EmptyStringExpandableObjectConverter.cs
- UnsafeNativeMethods.cs
- COM2Enum.cs
- HitTestParameters.cs
- Panel.cs
- EntryWrittenEventArgs.cs
- GeneratedView.cs
- EntityDataSourceWizardForm.cs
- Shape.cs
- IdleTimeoutMonitor.cs
- HtmlInputControl.cs
- ViewCellSlot.cs
- WebPartCollection.cs
- PrincipalPermissionMode.cs
- CodeSubDirectoriesCollection.cs
- DecoderFallback.cs
- ValidationSummary.cs
- HtmlLabelAdapter.cs
- CompilerGlobalScopeAttribute.cs
- Attribute.cs
- TripleDES.cs
- HelpProvider.cs
- WebPartEditorOkVerb.cs
- URLAttribute.cs
- DefaultPropertiesToSend.cs
- DataMemberListEditor.cs
- ProfessionalColorTable.cs
- BitmapFrameEncode.cs
- DbCommandTree.cs
- ControlDesignerState.cs
- BinaryObjectWriter.cs
- ResourcesChangeInfo.cs
- GridViewColumnHeaderAutomationPeer.cs
- InternalSafeNativeMethods.cs
- RouteData.cs
- KeyNotFoundException.cs
- StateMachine.cs
- Size3DConverter.cs
- ColumnProvider.cs
- RequestQueue.cs
- ResourceFallbackManager.cs
- ActiveXHelper.cs
- Section.cs
- SpellerStatusTable.cs
- ScrollPatternIdentifiers.cs
- MonitoringDescriptionAttribute.cs
- BatchWriter.cs
- SizeValueSerializer.cs
- ExtensionWindowHeader.cs
- HttpClientChannel.cs
- XslException.cs