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
- _HeaderInfo.cs
- ExpressionNode.cs
- ActivityTypeDesigner.xaml.cs
- XPathPatternBuilder.cs
- CodeSubDirectoriesCollection.cs
- ColumnPropertiesGroup.cs
- SimpleHandlerBuildProvider.cs
- SystemIPv6InterfaceProperties.cs
- SqlCommand.cs
- XmlDataLoader.cs
- OutOfMemoryException.cs
- _BufferOffsetSize.cs
- Figure.cs
- HtmlInputCheckBox.cs
- RootBrowserWindow.cs
- XmlAttributeCollection.cs
- NativeMethods.cs
- XmlNamespaceMappingCollection.cs
- CDSsyncETWBCLProvider.cs
- TdsEnums.cs
- MergeFilterQuery.cs
- DragDeltaEventArgs.cs
- ListViewInsertEventArgs.cs
- FormatterServicesNoSerializableCheck.cs
- HtmlWindowCollection.cs
- HMAC.cs
- unitconverter.cs
- SerialReceived.cs
- Fonts.cs
- EntityDataSource.cs
- OleDbReferenceCollection.cs
- CanonicalXml.cs
- BindingManagerDataErrorEventArgs.cs
- WindowClosedEventArgs.cs
- FactoryGenerator.cs
- HtmlTable.cs
- WindowsToolbarItemAsMenuItem.cs
- DesignerSerializationVisibilityAttribute.cs
- UInt32Storage.cs
- Convert.cs
- PerformanceCounter.cs
- WebPartVerbsEventArgs.cs
- XamlHttpHandlerFactory.cs
- IisTraceWebEventProvider.cs
- ChtmlCalendarAdapter.cs
- SafeNativeMethods.cs
- SessionState.cs
- ShowExpandedMultiValueConverter.cs
- SqlConnectionPoolProviderInfo.cs
- ListViewTableRow.cs
- ContextMenu.cs
- WebPartsSection.cs
- MouseDevice.cs
- DataGridViewColumnEventArgs.cs
- Form.cs
- TreeNodeStyleCollectionEditor.cs
- SmiRequestExecutor.cs
- AdapterDictionary.cs
- ConnectionOrientedTransportBindingElement.cs
- ParserOptions.cs
- UIElementHelper.cs
- DynamicPropertyHolder.cs
- ConfigurationLockCollection.cs
- TextOptions.cs
- SizeF.cs
- SimpleWorkerRequest.cs
- BmpBitmapDecoder.cs
- PackageProperties.cs
- TimeStampChecker.cs
- BasicBrowserDialog.designer.cs
- MenuItemStyleCollection.cs
- TableCellCollection.cs
- DbMetaDataCollectionNames.cs
- ActionMismatchAddressingException.cs
- DesignerRegionMouseEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- ControlAdapter.cs
- CompareValidator.cs
- SizeFConverter.cs
- SharedUtils.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ScrollProperties.cs
- UnionCodeGroup.cs
- Cloud.cs
- BrowserCapabilitiesFactory35.cs
- DirectoryInfo.cs
- CodeExporter.cs
- TimeSpanSecondsConverter.cs
- CommentAction.cs
- OleDbParameterCollection.cs
- URLEditor.cs
- ColorTranslator.cs
- InternalsVisibleToAttribute.cs
- ByteKeyFrameCollection.cs
- FillErrorEventArgs.cs
- AttributeQuery.cs
- RuntimeHandles.cs
- ExtensionElementCollection.cs
- ScrollChangedEventArgs.cs
- TextOnlyOutput.cs