Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Data / Microsoft / SqlServer / Server / SmiEventSink_DeferedProcessing.cs / 1 / 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
- ParameterInfo.cs
- TextPatternIdentifiers.cs
- RootBuilder.cs
- OracleBinary.cs
- HtmlInputFile.cs
- GraphicsPathIterator.cs
- ParenthesizePropertyNameAttribute.cs
- TableCell.cs
- JoinElimination.cs
- PageAdapter.cs
- ModelFunctionTypeElement.cs
- MenuBindingsEditorForm.cs
- Invariant.cs
- PropertiesTab.cs
- Renderer.cs
- HotSpot.cs
- FixedPosition.cs
- GeometryCollection.cs
- CheckoutException.cs
- PackageDigitalSignatureManager.cs
- HtmlControl.cs
- SchemaDeclBase.cs
- WebPartDisplayModeCancelEventArgs.cs
- LocatorPartList.cs
- WebResourceAttribute.cs
- ObjectNavigationPropertyMapping.cs
- APCustomTypeDescriptor.cs
- InputReportEventArgs.cs
- UdpUtility.cs
- XLinq.cs
- SQLDateTime.cs
- PageThemeParser.cs
- XmlWriterSettings.cs
- ForceCopyBuildProvider.cs
- WindowsFormsSynchronizationContext.cs
- LayoutManager.cs
- DataSetSchema.cs
- TextDpi.cs
- RoleManagerEventArgs.cs
- WebMessageEncoderFactory.cs
- AutomationElement.cs
- MetadataUtilsSmi.cs
- TemplateBindingExpression.cs
- IsolatedStorageFile.cs
- ScrollViewerAutomationPeer.cs
- FunctionQuery.cs
- TTSEvent.cs
- DataProtection.cs
- Int32Animation.cs
- CodeSnippetStatement.cs
- FontInfo.cs
- UpdatePanelTrigger.cs
- Rss20FeedFormatter.cs
- ImpersonationContext.cs
- Panel.cs
- MimeBasePart.cs
- OAVariantLib.cs
- WCFModelStrings.Designer.cs
- ConnectionsZone.cs
- ClientSponsor.cs
- Activity.cs
- PhonemeEventArgs.cs
- SqlDataSourceView.cs
- XslTransformFileEditor.cs
- Hyperlink.cs
- TerminatorSinks.cs
- DataServices.cs
- Effect.cs
- Icon.cs
- EventLogPermission.cs
- ScopeElement.cs
- ValidatingReaderNodeData.cs
- LayoutEngine.cs
- AttributeCollection.cs
- RegexCapture.cs
- TableParagraph.cs
- RuntimeEnvironment.cs
- ChildTable.cs
- TargetInvocationException.cs
- odbcmetadatacolumnnames.cs
- CodeGotoStatement.cs
- ByteConverter.cs
- ItemCollection.cs
- DBDataPermission.cs
- CodeDirectoryCompiler.cs
- PlanCompilerUtil.cs
- CssStyleCollection.cs
- ContentIterators.cs
- PersonalizableAttribute.cs
- Label.cs
- TreeNodeCollectionEditor.cs
- WindowsRebar.cs
- CFStream.cs
- ToolStripOverflow.cs
- Converter.cs
- SemaphoreFullException.cs
- PersistChildrenAttribute.cs
- ExpressionTable.cs
- Animatable.cs
- TextBoxBase.cs