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
- Vector3DKeyFrameCollection.cs
- ControlBuilderAttribute.cs
- XslVisitor.cs
- SingleKeyFrameCollection.cs
- EntityTypeEmitter.cs
- ChangeInterceptorAttribute.cs
- ViewBase.cs
- SizeF.cs
- COM2TypeInfoProcessor.cs
- PrintPreviewControl.cs
- MutexSecurity.cs
- IsolatedStorageFilePermission.cs
- BufferModesCollection.cs
- CompoundFileStreamReference.cs
- ReceiveActivityDesignerTheme.cs
- HttpSessionStateWrapper.cs
- SelectionPatternIdentifiers.cs
- MonitorWrapper.cs
- NameValueSectionHandler.cs
- HtmlSelect.cs
- NamedElement.cs
- VisemeEventArgs.cs
- NavigatorOutput.cs
- TextProperties.cs
- OleDbError.cs
- DateTimeUtil.cs
- RealizedColumnsBlock.cs
- HostingEnvironmentException.cs
- BaseWebProxyFinder.cs
- UndoManager.cs
- HighlightComponent.cs
- WindowsStatic.cs
- ParentUndoUnit.cs
- DbConnectionInternal.cs
- ForeignConstraint.cs
- FixedSchema.cs
- SqlSelectClauseBuilder.cs
- SqlError.cs
- CodeConditionStatement.cs
- Command.cs
- StylusOverProperty.cs
- Crc32Helper.cs
- DbConnectionInternal.cs
- remotingproxy.cs
- EndpointReference.cs
- CompareValidator.cs
- CopyNamespacesAction.cs
- HandlerFactoryWrapper.cs
- Message.cs
- TemplateAction.cs
- CheckBoxList.cs
- ViewRendering.cs
- GenericPrincipal.cs
- InvalidOleVariantTypeException.cs
- SocketInformation.cs
- AxWrapperGen.cs
- RegionIterator.cs
- odbcmetadatacollectionnames.cs
- RowBinding.cs
- DataRelation.cs
- DataBindingCollection.cs
- SetStateDesigner.cs
- ClientOptions.cs
- DependencyObjectValidator.cs
- EventMappingSettingsCollection.cs
- JumpItem.cs
- BinaryUtilClasses.cs
- RawStylusInputCustomDataList.cs
- AddInToken.cs
- HttpsTransportBindingElement.cs
- WasEndpointConfigContainer.cs
- MatrixTransform.cs
- PointLight.cs
- XmlFormatMapping.cs
- StringAttributeCollection.cs
- SqlMethodAttribute.cs
- XmlStreamNodeWriter.cs
- ListItemCollection.cs
- ButtonField.cs
- COM2ExtendedUITypeEditor.cs
- SmiContextFactory.cs
- CompleteWizardStep.cs
- StringOutput.cs
- RegistryDataKey.cs
- PageOutputColor.cs
- XpsSerializationManager.cs
- RoleManagerSection.cs
- XmlSchemaAttributeGroup.cs
- TextTreeFixupNode.cs
- FixedSOMPageConstructor.cs
- Vector3DCollection.cs
- PostBackTrigger.cs
- CollectionViewProxy.cs
- PackWebRequestFactory.cs
- ConstructorArgumentAttribute.cs
- WindowsStartMenu.cs
- DecoderFallback.cs
- ModelUIElement3D.cs
- WsdlParser.cs
- InputReport.cs