Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / tx / System / Transactions / Oletx / OletxDependentTransaction.cs / 1305376 / OletxDependentTransaction.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Threading; using System.Transactions.Diagnostics; namespace System.Transactions.Oletx { [Serializable] internal class OletxDependentTransaction : OletxTransaction { private OletxVolatileEnlistmentContainer volatileEnlistmentContainer; private int completed = 0; internal OletxDependentTransaction( RealOletxTransaction realTransaction, bool delayCommit ) : base( realTransaction ) { if ( null == realTransaction ) { throw new ArgumentNullException( "realTransaction" ); } this.volatileEnlistmentContainer = realOletxTransaction.AddDependentClone( delayCommit ); if ( DiagnosticTrace.Information ) { DependentCloneCreatedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId, delayCommit ? DependentCloneOption.BlockCommitUntilComplete : DependentCloneOption.RollbackIfNotComplete ); } } public void Complete() { if ( DiagnosticTrace.Verbose ) { MethodEnteredTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "DependentTransaction.Complete" ); } Debug.Assert( ( 0 == this.disposed ), "OletxTransction object is disposed" ); int localCompleted = Interlocked.CompareExchange( ref this.completed, 1, 0 ); if ( 1 == localCompleted ) { throw TransactionException.CreateTransactionCompletedException( SR.GetString( SR.TraceSourceOletx ) ); } if ( DiagnosticTrace.Information ) { DependentCloneCompleteTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId ); } this.volatileEnlistmentContainer.DependentCloneCompleted(); if ( DiagnosticTrace.Verbose ) { MethodExitedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "DependentTransaction.Complete" ); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Threading; using System.Transactions.Diagnostics; namespace System.Transactions.Oletx { [Serializable] internal class OletxDependentTransaction : OletxTransaction { private OletxVolatileEnlistmentContainer volatileEnlistmentContainer; private int completed = 0; internal OletxDependentTransaction( RealOletxTransaction realTransaction, bool delayCommit ) : base( realTransaction ) { if ( null == realTransaction ) { throw new ArgumentNullException( "realTransaction" ); } this.volatileEnlistmentContainer = realOletxTransaction.AddDependentClone( delayCommit ); if ( DiagnosticTrace.Information ) { DependentCloneCreatedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId, delayCommit ? DependentCloneOption.BlockCommitUntilComplete : DependentCloneOption.RollbackIfNotComplete ); } } public void Complete() { if ( DiagnosticTrace.Verbose ) { MethodEnteredTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "DependentTransaction.Complete" ); } Debug.Assert( ( 0 == this.disposed ), "OletxTransction object is disposed" ); int localCompleted = Interlocked.CompareExchange( ref this.completed, 1, 0 ); if ( 1 == localCompleted ) { throw TransactionException.CreateTransactionCompletedException( SR.GetString( SR.TraceSourceOletx ) ); } if ( DiagnosticTrace.Information ) { DependentCloneCompleteTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId ); } this.volatileEnlistmentContainer.DependentCloneCompleted(); if ( DiagnosticTrace.Verbose ) { MethodExitedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "DependentTransaction.Complete" ); } } } } // 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
- BitmapEffectInputData.cs
- FrugalMap.cs
- MasterPage.cs
- WebPartTransformer.cs
- StrongNameKeyPair.cs
- _AutoWebProxyScriptEngine.cs
- LayoutTable.cs
- DataServiceClientException.cs
- WorkerRequest.cs
- TextFormatterHost.cs
- NotCondition.cs
- NamespaceMapping.cs
- EntityDataSourceMemberPath.cs
- QilGeneratorEnv.cs
- EntityConnectionStringBuilderItem.cs
- QueryComponents.cs
- IItemProperties.cs
- FlowLayout.cs
- SqlFunctionAttribute.cs
- SqlClientWrapperSmiStream.cs
- IgnoreSectionHandler.cs
- ConnectionPoint.cs
- IssuanceLicense.cs
- ToolboxService.cs
- StatusBar.cs
- XslException.cs
- TypeDelegator.cs
- _TransmitFileOverlappedAsyncResult.cs
- PrePostDescendentsWalker.cs
- ThemeDictionaryExtension.cs
- AnimationClock.cs
- WrappedReader.cs
- XsltContext.cs
- ImageInfo.cs
- PtsHelper.cs
- OLEDB_Enum.cs
- dbdatarecord.cs
- ListItem.cs
- Compiler.cs
- EditableTreeList.cs
- TabItemWrapperAutomationPeer.cs
- CustomError.cs
- PointHitTestParameters.cs
- DataKey.cs
- Size3D.cs
- WebServiceHandler.cs
- CssClassPropertyAttribute.cs
- Positioning.cs
- OutputScopeManager.cs
- CertificateManager.cs
- CellLabel.cs
- CardSpaceException.cs
- PinnedBufferMemoryStream.cs
- MobileResource.cs
- InputReport.cs
- ButtonColumn.cs
- ObjectToModelValueConverter.cs
- ViewBox.cs
- LinkLabel.cs
- DbProviderConfigurationHandler.cs
- SafeNativeMemoryHandle.cs
- CustomErrorsSectionWrapper.cs
- SecurityContextCookieSerializer.cs
- MailAddress.cs
- SqlGatherConsumedAliases.cs
- ProxyWebPartManagerDesigner.cs
- DrawingVisualDrawingContext.cs
- ApplicationSecurityManager.cs
- PenLineCapValidation.cs
- EdmType.cs
- AccessDataSource.cs
- HttpCapabilitiesBase.cs
- GenericTypeParameterBuilder.cs
- BitmapVisualManager.cs
- OutputCacheModule.cs
- FormsAuthenticationEventArgs.cs
- BasePattern.cs
- ExecutedRoutedEventArgs.cs
- X509Certificate2Collection.cs
- RegexRunner.cs
- ObjectTag.cs
- VisualTransition.cs
- HtmlLabelAdapter.cs
- DetailsViewRowCollection.cs
- SqlResolver.cs
- Shape.cs
- UnsafeNativeMethods.cs
- VerificationException.cs
- GenericTextProperties.cs
- RotateTransform3D.cs
- ModulesEntry.cs
- streamingZipPartStream.cs
- ProtocolReflector.cs
- UndoEngine.cs
- CursorInteropHelper.cs
- StsCommunicationException.cs
- ProtocolReflector.cs
- CodeArrayIndexerExpression.cs
- TypeSource.cs
- HttpSocketManager.cs