Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / Microsoft / SqlServer / Server / SmiEventSink_DeferedProcessing.cs / 5 / SmiEventSink_DeferedProcessing.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace Microsoft.SqlServer.Server { using System.Data.Sql; using System.Data.SqlClient; using System.Diagnostics; // This class exists purely to defer processing of messages until a later time. // It is designed to allow calling common code that interacts with the SMI layers // without throwing or otherwise processing messages in the sink until later on. // // Main example: // SqlCommand.ExecuteNonQuerySmi calls EventStream.ProcessEvent with it's command event sink (CES) // ProcessEvent calls OnParametersAvailable on the CES // OnParametersAvailable sets up a deferedprocessing event sink (DPES) with the CES as its parent // OnParametersAvailable calls ValueUtils to extract param values passing the DPES // ValueUtils calls Smi passing DPES // Smi may call MessagePosted, which will send a message up the sink parent chain and save it. // ValueUtils calls ProcessMessagesAndThrow on DPES, which skips handling // ... return up the stack ... // SqlCommand.ExecuteNonQuerySmi calls CES.ProcessMessagesAndThrow, which handles the messages // sent from the Smi value extraction code. // // IMPORTANT: Code that uses the DeferedProccess event sink is responsible for ensuring that // these messages ARE processed at some point. internal class SmiEventSink_DeferedProcessing : SmiEventSink_Default { internal SmiEventSink_DeferedProcessing ( SmiEventSink parent ) : base(parent) { } protected override void DispatchMessages(bool ignoreNonFatalMessages) { // Skip processing messages. Since messages are sent to parent and calling code will call // ProcessMessages against parent, messages ARE NOT LOST! } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace Microsoft.SqlServer.Server { using System.Data.Sql; using System.Data.SqlClient; using System.Diagnostics; // This class exists purely to defer processing of messages until a later time. // It is designed to allow calling common code that interacts with the SMI layers // without throwing or otherwise processing messages in the sink until later on. // // Main example: // SqlCommand.ExecuteNonQuerySmi calls EventStream.ProcessEvent with it's command event sink (CES) // ProcessEvent calls OnParametersAvailable on the CES // OnParametersAvailable sets up a deferedprocessing event sink (DPES) with the CES as its parent // OnParametersAvailable calls ValueUtils to extract param values passing the DPES // ValueUtils calls Smi passing DPES // Smi may call MessagePosted, which will send a message up the sink parent chain and save it. // ValueUtils calls ProcessMessagesAndThrow on DPES, which skips handling // ... return up the stack ... // SqlCommand.ExecuteNonQuerySmi calls CES.ProcessMessagesAndThrow, which handles the messages // sent from the Smi value extraction code. // // IMPORTANT: Code that uses the DeferedProccess event sink is responsible for ensuring that // these messages ARE processed at some point. internal class SmiEventSink_DeferedProcessing : SmiEventSink_Default { internal SmiEventSink_DeferedProcessing ( SmiEventSink parent ) : base(parent) { } protected override void DispatchMessages(bool ignoreNonFatalMessages) { // Skip processing messages. Since messages are sent to parent and calling code will call // ProcessMessages against parent, messages ARE NOT LOST! } } } // 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
- HttpContext.cs
- OutputCacheProfile.cs
- MessageParameterAttribute.cs
- TableDetailsCollection.cs
- ComboBoxItem.cs
- ACE.cs
- SocketException.cs
- ActivityFunc.cs
- ScopelessEnumAttribute.cs
- DataSetUtil.cs
- ArrayWithOffset.cs
- HtmlForm.cs
- BmpBitmapDecoder.cs
- EventMemberCodeDomSerializer.cs
- Rect.cs
- ActivityBindForm.Designer.cs
- VariableQuery.cs
- SerialPinChanges.cs
- IImplicitResourceProvider.cs
- ColumnResizeAdorner.cs
- PolicyStatement.cs
- PriorityQueue.cs
- TypeName.cs
- BinaryNegotiation.cs
- SafeRegistryHandle.cs
- SerializationAttributes.cs
- ClearCollection.cs
- TextLineResult.cs
- MultipartIdentifier.cs
- InternalPermissions.cs
- OSEnvironmentHelper.cs
- ListViewGroupConverter.cs
- WorkflowEventArgs.cs
- CredentialSelector.cs
- DeferredBinaryDeserializerExtension.cs
- AnonymousIdentificationSection.cs
- ItemsPresenter.cs
- SignedXmlDebugLog.cs
- UnmanagedMemoryStream.cs
- Socket.cs
- EnumConverter.cs
- EventSinkHelperWriter.cs
- LinearKeyFrames.cs
- AssociatedControlConverter.cs
- Sentence.cs
- LinqMaximalSubtreeNominator.cs
- ISAPIApplicationHost.cs
- NavigationProperty.cs
- ToolStripPanel.cs
- autovalidator.cs
- PathFigureCollection.cs
- TypographyProperties.cs
- AmbientProperties.cs
- Formatter.cs
- IntPtr.cs
- ObjectDataProvider.cs
- SafeBitVector32.cs
- WebPartDisplayModeCancelEventArgs.cs
- CharUnicodeInfo.cs
- precedingsibling.cs
- LogEntrySerializationException.cs
- SqlRowUpdatedEvent.cs
- Pen.cs
- ConnectionManagementElementCollection.cs
- querybuilder.cs
- SqlInternalConnectionTds.cs
- PropertyNames.cs
- ColorAnimationBase.cs
- PropertyValue.cs
- MenuTracker.cs
- MgmtResManager.cs
- ValidationRuleCollection.cs
- HashMembershipCondition.cs
- SqlDelegatedTransaction.cs
- ListViewHitTestInfo.cs
- Configuration.cs
- EncodingDataItem.cs
- CodeParameterDeclarationExpressionCollection.cs
- mediapermission.cs
- CompressionTracing.cs
- ValidationErrorCollection.cs
- NullableConverter.cs
- DbMetaDataFactory.cs
- ContentValidator.cs
- Journal.cs
- AssemblyFilter.cs
- VariableValue.cs
- RootBuilder.cs
- DateTimeConverter.cs
- CaseCqlBlock.cs
- ErrorWrapper.cs
- VirtualizingPanel.cs
- TreeView.cs
- PenLineJoinValidation.cs
- ScrollChrome.cs
- DataGridViewCellConverter.cs
- XmlSerializationGeneratedCode.cs
- indexingfiltermarshaler.cs
- Header.cs
- TextAutomationPeer.cs