Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- EntityDataSourceContextDisposingEventArgs.cs
- DateTimeValueSerializerContext.cs
- FontFamilyValueSerializer.cs
- TextCollapsingProperties.cs
- ExecutorLocksHeldException.cs
- ServiceModelEnumValidatorAttribute.cs
- DataSourceIDConverter.cs
- TextParaLineResult.cs
- ProjectedWrapper.cs
- ExceptionWrapper.cs
- IIS7UserPrincipal.cs
- TraceSection.cs
- StateBag.cs
- ObjectSet.cs
- HttpCapabilitiesEvaluator.cs
- SupportingTokenListenerFactory.cs
- FolderLevelBuildProviderCollection.cs
- DBDataPermission.cs
- DataGrid.cs
- MultiByteCodec.cs
- BufferModeSettings.cs
- X500Name.cs
- EncoderReplacementFallback.cs
- CornerRadius.cs
- BinarySerializer.cs
- PageBuildProvider.cs
- TextBox.cs
- _NegoState.cs
- PieceNameHelper.cs
- SerialReceived.cs
- PrimitiveList.cs
- QilBinary.cs
- ConfigurationLocationCollection.cs
- LinkedResource.cs
- PublisherIdentityPermission.cs
- WebSysDefaultValueAttribute.cs
- Matrix3D.cs
- NameValueCollection.cs
- Pen.cs
- EventSinkHelperWriter.cs
- Icon.cs
- PeerNearMe.cs
- VirtualizingStackPanel.cs
- LassoHelper.cs
- TextContainerHelper.cs
- XPathNavigatorReader.cs
- UnmanagedMarshal.cs
- OdbcCommand.cs
- InlineCollection.cs
- TabletDevice.cs
- HandledMouseEvent.cs
- CodeIdentifiers.cs
- WSFederationHttpSecurityElement.cs
- JulianCalendar.cs
- GridViewCommandEventArgs.cs
- SoapFault.cs
- KeyInfo.cs
- CachedBitmap.cs
- Drawing.cs
- XmlObjectSerializerContext.cs
- Int64AnimationBase.cs
- RadioButtonBaseAdapter.cs
- ExpressionPrinter.cs
- DesignerSerializationOptionsAttribute.cs
- DispatchWrapper.cs
- RecipientIdentity.cs
- unitconverter.cs
- XPathCompileException.cs
- MenuItemBindingCollection.cs
- SqlDataRecord.cs
- DockPanel.cs
- MultilineStringConverter.cs
- HtmlTextBoxAdapter.cs
- HandlerMappingMemo.cs
- LocationUpdates.cs
- ReadOnlyDictionary.cs
- EntityDataSourceReferenceGroup.cs
- ContentFilePart.cs
- InheritedPropertyChangedEventArgs.cs
- PersonalizationStateQuery.cs
- TreeNode.cs
- TemplateField.cs
- TabPanel.cs
- ProcessManager.cs
- RuntimeConfig.cs
- MemoryStream.cs
- OracleTimeSpan.cs
- MatrixValueSerializer.cs
- Char.cs
- AssemblyInfo.cs
- XmlSchemaComplexContentExtension.cs
- SamlAssertionKeyIdentifierClause.cs
- RuntimeComponentFilter.cs
- CategoryNameCollection.cs
- InstanceCollisionException.cs
- ClientRolePrincipal.cs
- Separator.cs
- ExpressionBuilderContext.cs
- CTreeGenerator.cs
- BitmapSourceSafeMILHandle.cs