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
- TextTrailingCharacterEllipsis.cs
- WorkflowMarkupSerializerMapping.cs
- AppDomain.cs
- DrawingContextWalker.cs
- Page.cs
- CreateUserErrorEventArgs.cs
- XmlSchemaAppInfo.cs
- RowToFieldTransformer.cs
- InternalResources.cs
- MarshalByValueComponent.cs
- FunctionDetailsReader.cs
- DynamicMethod.cs
- HttpInputStream.cs
- DefaultProfileManager.cs
- LiteralControl.cs
- TagPrefixCollection.cs
- DirectoryNotFoundException.cs
- ValidatorCollection.cs
- InstanceDescriptor.cs
- ParserHooks.cs
- ButtonDesigner.cs
- MouseButtonEventArgs.cs
- _OSSOCK.cs
- CaseStatement.cs
- CommentEmitter.cs
- xmlformatgeneratorstatics.cs
- HtmlInputSubmit.cs
- TypeInitializationException.cs
- HeaderPanel.cs
- BridgeDataRecord.cs
- FileDialogCustomPlace.cs
- PartBasedPackageProperties.cs
- FolderBrowserDialog.cs
- GradientStopCollection.cs
- DbProviderManifest.cs
- TemplatedEditableDesignerRegion.cs
- DesignerCalendarAdapter.cs
- StandardOleMarshalObject.cs
- AdapterDictionary.cs
- _Connection.cs
- XmlSerializationReader.cs
- OleDbDataReader.cs
- GridViewRow.cs
- IODescriptionAttribute.cs
- OpenTypeMethods.cs
- WebPartDisplayModeCancelEventArgs.cs
- NavigationFailedEventArgs.cs
- PasswordBox.cs
- CodeTypeReferenceCollection.cs
- SqlDataSourceCommandEventArgs.cs
- PropertyDescriptorComparer.cs
- ToggleButton.cs
- BypassElementCollection.cs
- SerialPinChanges.cs
- HtmlWindowCollection.cs
- DeclaredTypeElementCollection.cs
- FactoryRecord.cs
- SystemMulticastIPAddressInformation.cs
- _AcceptOverlappedAsyncResult.cs
- ListViewDataItem.cs
- UriTemplateTable.cs
- CoreSwitches.cs
- SerializationSectionGroup.cs
- SmiMetaData.cs
- MatrixIndependentAnimationStorage.cs
- Guid.cs
- _RegBlobWebProxyDataBuilder.cs
- RelatedCurrencyManager.cs
- listitem.cs
- ProgressChangedEventArgs.cs
- TableRow.cs
- Win32MouseDevice.cs
- ImportCatalogPart.cs
- EdmRelationshipRoleAttribute.cs
- ThreadStartException.cs
- wpf-etw.cs
- SchemaTypeEmitter.cs
- ProxyHwnd.cs
- DataBindingCollection.cs
- InkCanvasFeedbackAdorner.cs
- ProcessHost.cs
- CoreSwitches.cs
- HighlightVisual.cs
- ConfigDefinitionUpdates.cs
- DataBindingCollection.cs
- TextParentUndoUnit.cs
- XmlSchemaIdentityConstraint.cs
- RegexWorker.cs
- AttributeCollection.cs
- HtmlTableCell.cs
- TableSectionStyle.cs
- RoleManagerSection.cs
- UrlMapping.cs
- Util.cs
- HttpWebResponse.cs
- ToggleButton.cs
- Mutex.cs
- Rect3DValueSerializer.cs
- TypeBuilderInstantiation.cs
- sqlstateclientmanager.cs