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
- Point4D.cs
- RadioButtonFlatAdapter.cs
- Brush.cs
- WmlPhoneCallAdapter.cs
- XmlCDATASection.cs
- ConnectionStringSettingsCollection.cs
- DataGridViewSelectedColumnCollection.cs
- PersistenceProviderFactory.cs
- AttachmentService.cs
- QueryStatement.cs
- WmlMobileTextWriter.cs
- MessagePropertyVariants.cs
- WebReferencesBuildProvider.cs
- BlurEffect.cs
- DataGridToolTip.cs
- CachedPathData.cs
- ProgressPage.cs
- DocumentPageView.cs
- ObfuscationAttribute.cs
- ReferencedAssemblyResolver.cs
- IisNotInstalledException.cs
- CodeParameterDeclarationExpression.cs
- SelectionItemProviderWrapper.cs
- HttpProcessUtility.cs
- CmsInterop.cs
- Empty.cs
- CountAggregationOperator.cs
- unitconverter.cs
- DocumentPageView.cs
- ImageMapEventArgs.cs
- SplitContainer.cs
- MarshalDirectiveException.cs
- DetailsViewInsertEventArgs.cs
- Vector3DCollectionValueSerializer.cs
- RegistryKey.cs
- URLString.cs
- BevelBitmapEffect.cs
- TypeToken.cs
- PropertyEmitter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- EntityProviderFactory.cs
- HttpResponse.cs
- ZeroOpNode.cs
- TextTreeInsertElementUndoUnit.cs
- FilterElement.cs
- TimelineClockCollection.cs
- MessageEnumerator.cs
- ImageInfo.cs
- DefaultMergeHelper.cs
- RepeatButtonAutomationPeer.cs
- CultureSpecificStringDictionary.cs
- LinkConverter.cs
- CodeTypeDelegate.cs
- MsmqIntegrationProcessProtocolHandler.cs
- Repeater.cs
- DeviceOverridableAttribute.cs
- Signature.cs
- CircleHotSpot.cs
- EtwTrace.cs
- ResourceDictionaryCollection.cs
- BlobPersonalizationState.cs
- PropertyTabChangedEvent.cs
- ReliableInputConnection.cs
- CodeCatchClause.cs
- Pair.cs
- SmtpNetworkElement.cs
- TransactionState.cs
- SourceSwitch.cs
- TransactionOptions.cs
- StandardOleMarshalObject.cs
- EventListener.cs
- TransformCollection.cs
- QueryOptionExpression.cs
- DataGridViewColumnEventArgs.cs
- Rotation3DKeyFrameCollection.cs
- WinInetCache.cs
- BuildProvider.cs
- RenamedEventArgs.cs
- Privilege.cs
- CompilerTypeWithParams.cs
- MetadataItemEmitter.cs
- AddressHeaderCollection.cs
- QilGenerator.cs
- ScriptBehaviorDescriptor.cs
- ChoiceConverter.cs
- ExtendedPropertyDescriptor.cs
- ExpressionBindingCollection.cs
- OracleBFile.cs
- NativeRightsManagementAPIsStructures.cs
- SHA512.cs
- LineInfo.cs
- ReferenceEqualityComparer.cs
- SafeNativeMethodsOther.cs
- ReadOnlyCollectionBuilder.cs
- CodeRegionDirective.cs
- TemplateColumn.cs
- TableLayoutStyleCollection.cs
- ScriptResourceAttribute.cs
- OleDbConnectionInternal.cs
- SqlWebEventProvider.cs