Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / tx / System / Transactions / Oletx / OletxCommittableTransaction.cs / 1305376 / OletxCommittableTransaction.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Transactions.Oletx { using System; using System.Configuration; using System.Diagnostics; using System.Runtime.InteropServices; using System.Runtime.Remoting.Messaging; using System.Runtime.Serialization; using System.Security.Permissions; using System.Threading; using System.Transactions.Diagnostics; ////// A Transaction object represents a single transaction. It is created by TransactionManager /// objects through CreateTransaction or UnmarshalTransaction. Alternatively, the static Create /// methodis provided, which creates a "default" TransactionManager and requests that it create /// a new transaction with default values. A transaction can only be committed by /// the client application that created the transaction. If a client application wishes to allow /// access to the transaction by multiple threads, but wants to prevent those other threads from /// committing the transaction, the application can make a "clone" of the transaction. Transaction /// clones have the same capabilities as the original transaction, except for the ability to commit /// the transaction. /// [Serializable] internal class OletxCommittableTransaction : OletxTransaction { bool commitCalled = false; ////// Constructor for the Transaction object. Specifies the TransactionManager instance that is /// creating the transaction. /// /// /// Specifies the TransactionManager instance that is creating the transaction. /// internal OletxCommittableTransaction( RealOletxTransaction realOletxTransaction ) : base( realOletxTransaction ) { realOletxTransaction.committableTransaction = this; } internal bool CommitCalled { get { return this.commitCalled; } } internal void BeginCommit( InternalTransaction internalTransaction ) { if ( DiagnosticTrace.Verbose ) { MethodEnteredTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "CommittableTransaction.BeginCommit" ); TransactionCommitCalledTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId ); } Debug.Assert( ( 0 == this.disposed ), "OletxTransction object is disposed" ); this.realOletxTransaction.InternalTransaction = internalTransaction; this.commitCalled = true; this.realOletxTransaction.Commit(); if ( DiagnosticTrace.Verbose ) { MethodExitedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "CommittableTransaction.BeginCommit" ); } return; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Transactions.Oletx { using System; using System.Configuration; using System.Diagnostics; using System.Runtime.InteropServices; using System.Runtime.Remoting.Messaging; using System.Runtime.Serialization; using System.Security.Permissions; using System.Threading; using System.Transactions.Diagnostics; ////// A Transaction object represents a single transaction. It is created by TransactionManager /// objects through CreateTransaction or UnmarshalTransaction. Alternatively, the static Create /// methodis provided, which creates a "default" TransactionManager and requests that it create /// a new transaction with default values. A transaction can only be committed by /// the client application that created the transaction. If a client application wishes to allow /// access to the transaction by multiple threads, but wants to prevent those other threads from /// committing the transaction, the application can make a "clone" of the transaction. Transaction /// clones have the same capabilities as the original transaction, except for the ability to commit /// the transaction. /// [Serializable] internal class OletxCommittableTransaction : OletxTransaction { bool commitCalled = false; ////// Constructor for the Transaction object. Specifies the TransactionManager instance that is /// creating the transaction. /// /// /// Specifies the TransactionManager instance that is creating the transaction. /// internal OletxCommittableTransaction( RealOletxTransaction realOletxTransaction ) : base( realOletxTransaction ) { realOletxTransaction.committableTransaction = this; } internal bool CommitCalled { get { return this.commitCalled; } } internal void BeginCommit( InternalTransaction internalTransaction ) { if ( DiagnosticTrace.Verbose ) { MethodEnteredTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "CommittableTransaction.BeginCommit" ); TransactionCommitCalledTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), this.TransactionTraceId ); } Debug.Assert( ( 0 == this.disposed ), "OletxTransction object is disposed" ); this.realOletxTransaction.InternalTransaction = internalTransaction; this.commitCalled = true; this.realOletxTransaction.Commit(); if ( DiagnosticTrace.Verbose ) { MethodExitedTraceRecord.Trace( SR.GetString( SR.TraceSourceOletx ), "CommittableTransaction.BeginCommit" ); } return; } } } // 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
- AssemblyContextControlItem.cs
- UdpUtility.cs
- PresentationAppDomainManager.cs
- DesignerExtenders.cs
- XmlNodeChangedEventManager.cs
- SystemEvents.cs
- GPRECT.cs
- StateMachineHelpers.cs
- MultilineStringConverter.cs
- EnvelopedSignatureTransform.cs
- FileChangeNotifier.cs
- DoubleCollectionConverter.cs
- Lock.cs
- HttpListenerResponse.cs
- safelinkcollection.cs
- ChameleonKey.cs
- OpenTypeLayoutCache.cs
- NamedPipeWorkerProcess.cs
- AssemblyCacheEntry.cs
- ProfileParameter.cs
- PrinterResolution.cs
- NavigationPropertySingletonExpression.cs
- AssociationEndMember.cs
- ResolveCriteriaApril2005.cs
- ProviderUtil.cs
- MostlySingletonList.cs
- LineMetrics.cs
- ExternalException.cs
- Exceptions.cs
- XmlProcessingInstruction.cs
- CursorConverter.cs
- CannotUnloadAppDomainException.cs
- Int64KeyFrameCollection.cs
- StrokeIntersection.cs
- ApplicationContext.cs
- TextFormatterHost.cs
- WorkflowService.cs
- RangeValidator.cs
- XPathBinder.cs
- SchemaTypeEmitter.cs
- AdornedElementPlaceholder.cs
- FormView.cs
- XmlValidatingReader.cs
- SourceInterpreter.cs
- XsltException.cs
- DateTimeParse.cs
- BinaryEditor.cs
- BamlResourceDeserializer.cs
- DataBinder.cs
- DoubleLink.cs
- MonitorWrapper.cs
- HyperlinkAutomationPeer.cs
- OSEnvironmentHelper.cs
- HtmlTableCellCollection.cs
- FilterEventArgs.cs
- CharEnumerator.cs
- HierarchicalDataSourceControl.cs
- IntSecurity.cs
- EventlogProvider.cs
- ModelUIElement3D.cs
- DataDocumentXPathNavigator.cs
- ComplexObject.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Ops.cs
- SubpageParagraph.cs
- LeaseManager.cs
- StructuredProperty.cs
- DataKey.cs
- ListViewAutomationPeer.cs
- XmlSecureResolver.cs
- SynchronizationLockException.cs
- AdornerLayer.cs
- CatalogZoneBase.cs
- DetailsViewRowCollection.cs
- AppDomainShutdownMonitor.cs
- SwitchLevelAttribute.cs
- FrameworkContentElement.cs
- XmlNullResolver.cs
- SortQuery.cs
- TagMapCollection.cs
- SafeArchiveContext.cs
- ControlValuePropertyAttribute.cs
- CodeSnippetExpression.cs
- ValidationError.cs
- RightNameExpirationInfoPair.cs
- ImageClickEventArgs.cs
- EventRoute.cs
- ValueTypeFieldReference.cs
- SmiEventSink_DeferedProcessing.cs
- UnsupportedPolicyOptionsException.cs
- DurableInstanceManager.cs
- ApplicationSecurityManager.cs
- VirtualPathUtility.cs
- ThicknessKeyFrameCollection.cs
- HttpChannelFactory.cs
- Menu.cs
- RelationshipDetailsCollection.cs
- Cell.cs
- SkewTransform.cs
- Module.cs