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
- RegexCaptureCollection.cs
- latinshape.cs
- QfeChecker.cs
- SystemIPInterfaceProperties.cs
- BufferModesCollection.cs
- Asn1IntegerConverter.cs
- SmiSettersStream.cs
- MenuItemBindingCollection.cs
- XmlSchemaDatatype.cs
- HttpBrowserCapabilitiesWrapper.cs
- CodeNamespace.cs
- BamlTreeNode.cs
- SqlDependencyUtils.cs
- XsdDataContractExporter.cs
- DataServiceException.cs
- RegistryPermission.cs
- StaticResourceExtension.cs
- RegistryPermission.cs
- XamlSerializerUtil.cs
- HtmlListAdapter.cs
- EntityKey.cs
- XhtmlTextWriter.cs
- TargetControlTypeAttribute.cs
- TextEditorSpelling.cs
- WebPartDescription.cs
- XPathNodeIterator.cs
- ProfileManager.cs
- LostFocusEventManager.cs
- Nullable.cs
- ScriptModule.cs
- SessionStateItemCollection.cs
- BitmapEffectInputConnector.cs
- Triplet.cs
- OdbcError.cs
- UInt32Converter.cs
- FixedSOMFixedBlock.cs
- OletxResourceManager.cs
- FileSystemEventArgs.cs
- LabelEditEvent.cs
- EnumConverter.cs
- Cloud.cs
- ToolStripLocationCancelEventArgs.cs
- TypeInformation.cs
- ToolboxItem.cs
- HttpDebugHandler.cs
- SQLStringStorage.cs
- QilXmlWriter.cs
- HostingEnvironmentWrapper.cs
- TemplateField.cs
- PKCS1MaskGenerationMethod.cs
- SynchronizedInputProviderWrapper.cs
- VisualStateChangedEventArgs.cs
- TextProviderWrapper.cs
- TimerElapsedEvenArgs.cs
- DefaultSettingsSection.cs
- MetafileHeader.cs
- Environment.cs
- DashStyle.cs
- DummyDataSource.cs
- GuidelineSet.cs
- ComponentSerializationService.cs
- Imaging.cs
- HashSet.cs
- Deflater.cs
- StringToken.cs
- Vector3DValueSerializer.cs
- WSHttpBindingBase.cs
- SerializationInfo.cs
- StateRuntime.cs
- NetworkInterface.cs
- CellLabel.cs
- Brush.cs
- OrderedHashRepartitionEnumerator.cs
- TaskResultSetter.cs
- PropertyMetadata.cs
- FixedNode.cs
- Timer.cs
- DataBinding.cs
- StrokeCollectionConverter.cs
- AppLevelCompilationSectionCache.cs
- WpfPayload.cs
- IndentedWriter.cs
- System.Data.OracleClient_BID.cs
- ThreadStaticAttribute.cs
- FillBehavior.cs
- TextureBrush.cs
- GroupBoxAutomationPeer.cs
- CharUnicodeInfo.cs
- _UncName.cs
- NumericUpDown.cs
- DrawingAttributeSerializer.cs
- TypedReference.cs
- TextBox.cs
- WorkItem.cs
- PerformanceCounterCategory.cs
- DelayedRegex.cs
- DependencyPropertyDescriptor.cs
- ResXFileRef.cs
- InternalSafeNativeMethods.cs
- DataBindingExpressionBuilder.cs