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
- PenContext.cs
- EventEntry.cs
- ContentIterators.cs
- InstanceData.cs
- _ConnectionGroup.cs
- AvTraceFormat.cs
- CodeStatementCollection.cs
- TableLayoutStyleCollection.cs
- DispatcherExceptionEventArgs.cs
- ApplicationBuildProvider.cs
- BaseUriHelper.cs
- SplitContainerDesigner.cs
- DynamicDataRouteHandler.cs
- ChangeNode.cs
- Viewport3DAutomationPeer.cs
- ReadOnlyObservableCollection.cs
- LongSumAggregationOperator.cs
- NavigateUrlConverter.cs
- ModifierKeysValueSerializer.cs
- DataGridTextBoxColumn.cs
- SplitterCancelEvent.cs
- ChtmlCommandAdapter.cs
- WindowsSysHeader.cs
- InputLanguageSource.cs
- PropertyInformation.cs
- DataIdProcessor.cs
- EventDriven.cs
- PermissionToken.cs
- DesignerVerb.cs
- DbDataAdapter.cs
- FamilyMapCollection.cs
- PriorityItem.cs
- StorageEndPropertyMapping.cs
- MailMessageEventArgs.cs
- SequenceDesigner.cs
- ZipPackagePart.cs
- ReadOnlyCollectionBase.cs
- ProfileEventArgs.cs
- InitializerFacet.cs
- MatchAttribute.cs
- ActivityBindForm.cs
- XmlHierarchicalEnumerable.cs
- DataService.cs
- XmlSchemaFacet.cs
- ItemCheckEvent.cs
- CompiledQueryCacheKey.cs
- PropertyGroupDescription.cs
- SuppressIldasmAttribute.cs
- DataGrid.cs
- TextElementEnumerator.cs
- SamlAssertionKeyIdentifierClause.cs
- UriTemplateVariablePathSegment.cs
- Int32CollectionConverter.cs
- Resources.Designer.cs
- FileVersion.cs
- SharedStatics.cs
- Int64Animation.cs
- UrlPath.cs
- ListViewSelectEventArgs.cs
- IconBitmapDecoder.cs
- XmlDataSourceDesigner.cs
- SqlWebEventProvider.cs
- KnownBoxes.cs
- PolicyManager.cs
- StoreItemCollection.Loader.cs
- CqlLexer.cs
- LoginUtil.cs
- ScriptModule.cs
- CacheSection.cs
- RangeExpression.cs
- SqlComparer.cs
- CatalogZoneBase.cs
- Highlights.cs
- DataGridTextBoxColumn.cs
- ListBoxItem.cs
- DynamicRendererThreadManager.cs
- InfoCardSymmetricCrypto.cs
- ContentOperations.cs
- ByteRangeDownloader.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- FilterableAttribute.cs
- TextRunTypographyProperties.cs
- TraceHandlerErrorFormatter.cs
- MsmqMessage.cs
- FlowDocumentReaderAutomationPeer.cs
- RectKeyFrameCollection.cs
- SrgsRuleRef.cs
- SoapDocumentMethodAttribute.cs
- CLRBindingWorker.cs
- FontWeightConverter.cs
- ProfileGroupSettingsCollection.cs
- OperationResponse.cs
- PixelShader.cs
- InkPresenter.cs
- columnmapfactory.cs
- ProcessModule.cs
- NamedPermissionSet.cs
- AppSettings.cs
- AnimationException.cs
- TextBoxRenderer.cs