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
- QilLoop.cs
- ItemsPresenter.cs
- Types.cs
- NavigationProperty.cs
- WebBaseEventKeyComparer.cs
- GeneralTransformGroup.cs
- GroupDescription.cs
- MimeReflector.cs
- EncoderExceptionFallback.cs
- XmlDocumentSerializer.cs
- InteropBitmapSource.cs
- BitmapPalette.cs
- EntityDataSourceColumn.cs
- XmlSchemaAnnotation.cs
- TypeExtensionConverter.cs
- WebResponse.cs
- DataSourceProvider.cs
- OutKeywords.cs
- FreezableCollection.cs
- SafeProcessHandle.cs
- VisualStyleRenderer.cs
- TabItemWrapperAutomationPeer.cs
- IndentTextWriter.cs
- AddInContractAttribute.cs
- TreeBuilder.cs
- RIPEMD160Managed.cs
- ListViewUpdateEventArgs.cs
- ImmutableObjectAttribute.cs
- GeneralTransform3DCollection.cs
- SymmetricSecurityProtocol.cs
- SpellerHighlightLayer.cs
- TranslateTransform.cs
- Comparer.cs
- HostingPreferredMapPath.cs
- SpeakProgressEventArgs.cs
- ConvertEvent.cs
- smtppermission.cs
- Emitter.cs
- ServiceOperationParameter.cs
- XmlWrappingWriter.cs
- CommandField.cs
- ExpressionPrinter.cs
- TempFiles.cs
- TextOutput.cs
- ObjectDataSourceFilteringEventArgs.cs
- HttpResponseInternalWrapper.cs
- SqlDataSourceFilteringEventArgs.cs
- ActivityBindForm.cs
- InvalidStoreProtectionKeyException.cs
- XmlDataLoader.cs
- NotifyCollectionChangedEventArgs.cs
- ControlSerializer.cs
- SchemaRegistration.cs
- Polygon.cs
- GeneralTransform3DCollection.cs
- ComponentChangingEvent.cs
- DbMetaDataFactory.cs
- Version.cs
- ScrollProperties.cs
- WorkflowMarkupSerializer.cs
- DataControlFieldCollection.cs
- RIPEMD160.cs
- Queue.cs
- DocumentGridContextMenu.cs
- HttpInputStream.cs
- QueryStringConverter.cs
- IPPacketInformation.cs
- WebDisplayNameAttribute.cs
- BitmapVisualManager.cs
- AlgoModule.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- MSAAEventDispatcher.cs
- HtmlShim.cs
- StreamAsIStream.cs
- MemberInfoSerializationHolder.cs
- StringUtil.cs
- WizardStepCollectionEditor.cs
- ArglessEventHandlerProxy.cs
- RTTypeWrapper.cs
- FolderBrowserDialog.cs
- HMAC.cs
- WithStatement.cs
- UTF8Encoding.cs
- FacetChecker.cs
- RemotingServices.cs
- designeractionlistschangedeventargs.cs
- MergeLocalizationDirectives.cs
- InfocardExtendedInformationEntry.cs
- ContextMenuAutomationPeer.cs
- BamlRecordWriter.cs
- DocumentSequence.cs
- FlowDocumentReaderAutomationPeer.cs
- StateItem.cs
- TemplateParser.cs
- StylusPointDescription.cs
- XmlCharCheckingReader.cs
- DefinitionBase.cs
- Button.cs
- Freezable.cs
- FormViewInsertEventArgs.cs