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
- SafeNativeMethods.cs
- HelpInfo.cs
- IriParsingElement.cs
- HttpsHostedTransportConfiguration.cs
- ListViewContainer.cs
- CodeBlockBuilder.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CheckBox.cs
- SiteMapDataSourceView.cs
- RayMeshGeometry3DHitTestResult.cs
- ParameterToken.cs
- ProfileInfo.cs
- TextTrailingCharacterEllipsis.cs
- EventsTab.cs
- ObjectViewFactory.cs
- ToolStripContainer.cs
- DispatcherHookEventArgs.cs
- DrawingGroup.cs
- PrivilegeNotHeldException.cs
- ModifierKeysValueSerializer.cs
- FactorySettingsElement.cs
- TrackingMemoryStream.cs
- Utilities.cs
- WithStatement.cs
- ResXFileRef.cs
- SafeCryptContextHandle.cs
- TypeViewSchema.cs
- SqlFileStream.cs
- ApplicationSettingsBase.cs
- DetailsViewUpdateEventArgs.cs
- PowerStatus.cs
- UnhandledExceptionEventArgs.cs
- HtmlGenericControl.cs
- ProcessDesigner.cs
- ToolStripDropDownClosingEventArgs.cs
- Win32Native.cs
- HuffmanTree.cs
- DrawingContextWalker.cs
- MobilePage.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- SafePEFileHandle.cs
- WizardStepBase.cs
- NativeMethods.cs
- DependencyPropertyHelper.cs
- SafeCertificateStore.cs
- MailDefinitionBodyFileNameEditor.cs
- XmlAnyAttributeAttribute.cs
- EntityContainer.cs
- TextRunCache.cs
- ExpressionConverter.cs
- NativeMethods.cs
- Effect.cs
- FileDataSourceCache.cs
- IndexOutOfRangeException.cs
- cache.cs
- RightNameExpirationInfoPair.cs
- TrackingStringDictionary.cs
- UserMapPath.cs
- TextEditorParagraphs.cs
- SdlChannelSink.cs
- ProtocolInformationReader.cs
- InternalConfigEventArgs.cs
- ControlBuilderAttribute.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- TitleStyle.cs
- Attributes.cs
- StringCollection.cs
- GregorianCalendar.cs
- CheckBoxStandardAdapter.cs
- CodeTypeReferenceCollection.cs
- DbConnectionStringCommon.cs
- CommandDevice.cs
- _AcceptOverlappedAsyncResult.cs
- ComNativeDescriptor.cs
- ConnectionPointGlyph.cs
- GenericUriParser.cs
- LocatorPart.cs
- Label.cs
- DeriveBytes.cs
- ScriptMethodAttribute.cs
- ProgressBar.cs
- ViewGenResults.cs
- PageContent.cs
- ControlCodeDomSerializer.cs
- ObjectToIdCache.cs
- SoapEnumAttribute.cs
- EventLogException.cs
- DeploymentExceptionMapper.cs
- StylusTouchDevice.cs
- SiteMapDataSourceDesigner.cs
- EntityClientCacheEntry.cs
- Color.cs
- ToolboxComponentsCreatingEventArgs.cs
- DataContractSet.cs
- DecoderExceptionFallback.cs
- SafeCertificateStore.cs
- PointIndependentAnimationStorage.cs
- Automation.cs
- ProgressBar.cs
- CodeGen.cs