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
- LabelAutomationPeer.cs
- ReadContentAsBinaryHelper.cs
- TextTreeExtractElementUndoUnit.cs
- CultureTableRecord.cs
- BaseInfoTable.cs
- SqlResolver.cs
- Vector3DCollectionConverter.cs
- Utility.cs
- InfoCardRSACryptoProvider.cs
- HttpInputStream.cs
- LogRecordSequence.cs
- OSFeature.cs
- IncrementalHitTester.cs
- UnknownBitmapEncoder.cs
- TableProviderWrapper.cs
- HMAC.cs
- EntityAdapter.cs
- SmiContext.cs
- ExpressionEvaluator.cs
- SystemInformation.cs
- ConfigurationStrings.cs
- Shape.cs
- FastEncoderWindow.cs
- UIElementAutomationPeer.cs
- ServerIdentity.cs
- CachedPathData.cs
- KeyManager.cs
- TdsRecordBufferSetter.cs
- BackgroundWorker.cs
- SpinLock.cs
- DifferencingCollection.cs
- ObjectViewQueryResultData.cs
- LocalFileSettingsProvider.cs
- PropertyDescriptor.cs
- RuleDefinitions.cs
- CoTaskMemHandle.cs
- CryptoConfig.cs
- DesignerDataTable.cs
- DataGridRelationshipRow.cs
- TypeDescriptor.cs
- InputMethodStateChangeEventArgs.cs
- ParenthesizePropertyNameAttribute.cs
- ModelItemImpl.cs
- RepeatBehavior.cs
- SafeHandle.cs
- ProxyWebPartConnectionCollection.cs
- webbrowsersite.cs
- GeometryConverter.cs
- SQLBytes.cs
- PointHitTestResult.cs
- ConfigXmlSignificantWhitespace.cs
- DataGridViewColumnHeaderCell.cs
- TextEmbeddedObject.cs
- DocumentSequence.cs
- _RegBlobWebProxyDataBuilder.cs
- HttpWebRequest.cs
- MatcherBuilder.cs
- HostnameComparisonMode.cs
- TextEncodedRawTextWriter.cs
- Internal.cs
- TextSelectionHighlightLayer.cs
- HybridDictionary.cs
- HtmlElementEventArgs.cs
- MemberHolder.cs
- TextRunCacheImp.cs
- GPRECTF.cs
- nulltextnavigator.cs
- ValueType.cs
- CodeGeneratorOptions.cs
- DependencyObject.cs
- DataSourceView.cs
- ObjectCache.cs
- DesignerDataSourceView.cs
- ListDataHelper.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- BooleanStorage.cs
- ZipIOCentralDirectoryBlock.cs
- SessionEndedEventArgs.cs
- DefaultWorkflowTransactionService.cs
- SelectionWordBreaker.cs
- WebPartVerbsEventArgs.cs
- ChooseAction.cs
- RowToParametersTransformer.cs
- ApplicationProxyInternal.cs
- TileBrush.cs
- TableItemPattern.cs
- SqlProfileProvider.cs
- Attributes.cs
- WmpBitmapDecoder.cs
- MemberInfoSerializationHolder.cs
- HMACMD5.cs
- QuadTree.cs
- XmlMemberMapping.cs
- EventProviderClassic.cs
- ResourcePermissionBase.cs
- PageSettings.cs
- dataSvcMapFileLoader.cs
- complextypematerializer.cs
- WebPartDisplayModeCollection.cs
- AnimationTimeline.cs