Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / Microsoft / SqlServer / Server / SmiEventSink_DeferedProcessing.cs / 1305376 / 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
- Peer.cs
- MemberRelationshipService.cs
- TryExpression.cs
- OleDbParameterCollection.cs
- HttpServerProtocol.cs
- Rotation3DAnimation.cs
- _Events.cs
- LocalBuilder.cs
- NavigatorInput.cs
- CacheMemory.cs
- EntityExpressionVisitor.cs
- AggregateNode.cs
- SqlDataSourceView.cs
- EncodingDataItem.cs
- SqlServices.cs
- CultureInfoConverter.cs
- SmiEventSink.cs
- LogSwitch.cs
- GeometryCombineModeValidation.cs
- XmlNodeList.cs
- StrokeIntersection.cs
- DbParameterHelper.cs
- WmlLiteralTextAdapter.cs
- RepeatButton.cs
- XmlElementAttribute.cs
- SvcMapFileLoader.cs
- EntityExpressionVisitor.cs
- Reference.cs
- XmlQueryTypeFactory.cs
- AsymmetricAlgorithm.cs
- XamlWriter.cs
- InputGestureCollection.cs
- TdsValueSetter.cs
- Int32.cs
- DrawListViewItemEventArgs.cs
- ResourceContainer.cs
- CategoryValueConverter.cs
- WasNotInstalledException.cs
- TreePrinter.cs
- HttpsHostedTransportConfiguration.cs
- ProxyWebPartConnectionCollection.cs
- SchemaCompiler.cs
- SoapObjectWriter.cs
- DataGridViewCellValueEventArgs.cs
- CodeConditionStatement.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- InputScopeAttribute.cs
- SmtpAuthenticationManager.cs
- Or.cs
- TextDecorationCollection.cs
- SizeChangedInfo.cs
- HandlerBase.cs
- WorkflowLayouts.cs
- WeakReadOnlyCollection.cs
- SelectionRange.cs
- Serialization.cs
- Visual3D.cs
- ProxyWebPartConnectionCollection.cs
- BinaryNode.cs
- XamlClipboardData.cs
- Decimal.cs
- HitTestResult.cs
- DocumentPaginator.cs
- ObjectPersistData.cs
- CommonGetThemePartSize.cs
- DataListItemEventArgs.cs
- VerticalAlignConverter.cs
- InputBinding.cs
- SyndicationSerializer.cs
- CalloutQueueItem.cs
- InfoCardProofToken.cs
- SequenceDesignerAccessibleObject.cs
- DBNull.cs
- MDIClient.cs
- Point3DAnimationBase.cs
- EventHandlersStore.cs
- DataPager.cs
- ListItem.cs
- EditingCoordinator.cs
- DateTimeSerializationSection.cs
- ZipIOExtraFieldZip64Element.cs
- TableLayoutStyleCollection.cs
- ServiceBusyException.cs
- LookupNode.cs
- DiscoveryClient.cs
- OwnerDrawPropertyBag.cs
- HttpGetClientProtocol.cs
- StatusBarDrawItemEvent.cs
- ConnectionManagementElementCollection.cs
- ILGenerator.cs
- SecurityTokenResolver.cs
- SqlUserDefinedTypeAttribute.cs
- ConnectionStringsSection.cs
- PathFigureCollection.cs
- Visual3DCollection.cs
- DataViewManagerListItemTypeDescriptor.cs
- PhysicalAddress.cs
- AutomationPropertyInfo.cs
- DataListItemCollection.cs
- SchemaElement.cs