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
- SemanticTag.cs
- LinqDataView.cs
- MD5.cs
- DeploymentSectionCache.cs
- FormViewCommandEventArgs.cs
- XmlAnyElementAttribute.cs
- InstanceData.cs
- HtmlElementErrorEventArgs.cs
- AbstractSvcMapFileLoader.cs
- HostedTransportConfigurationManager.cs
- GZipDecoder.cs
- CompositeTypefaceMetrics.cs
- FontCollection.cs
- SelectionProcessor.cs
- Renderer.cs
- UnauthorizedAccessException.cs
- CheckBox.cs
- UICuesEvent.cs
- RewritingPass.cs
- ContextMarshalException.cs
- TraceEventCache.cs
- WebRequest.cs
- TcpTransportSecurity.cs
- ScrollBar.cs
- ZoneMembershipCondition.cs
- WindowsIdentity.cs
- ParameterInfo.cs
- ExpressionParser.cs
- GridViewUpdateEventArgs.cs
- TextWriter.cs
- AcceleratedTokenAuthenticator.cs
- WebDescriptionAttribute.cs
- XMLSyntaxException.cs
- DesignTable.cs
- CodeSubDirectoriesCollection.cs
- EncoderFallback.cs
- WebPartEditorCancelVerb.cs
- XmlArrayItemAttribute.cs
- PreservationFileReader.cs
- ListBox.cs
- PageBreakRecord.cs
- RegexCode.cs
- Point.cs
- ScriptReferenceEventArgs.cs
- StyleXamlParser.cs
- Block.cs
- PagePropertiesChangingEventArgs.cs
- WebProxyScriptElement.cs
- XmlArrayItemAttribute.cs
- OLEDB_Enum.cs
- PanelDesigner.cs
- CodeCastExpression.cs
- XamlStream.cs
- InternalMappingException.cs
- ListViewInsertEventArgs.cs
- CodeActivityContext.cs
- BindingExpressionUncommonField.cs
- Parameter.cs
- SrgsNameValueTag.cs
- WindowsListViewSubItem.cs
- WorkflowApplicationCompletedException.cs
- FormParameter.cs
- EntityReference.cs
- XmlDocumentType.cs
- ScrollChrome.cs
- CompoundFileStorageReference.cs
- basenumberconverter.cs
- WebPartConnectionsConfigureVerb.cs
- ModelServiceImpl.cs
- ConcurrentStack.cs
- ThreadExceptionEvent.cs
- FixedNode.cs
- XmlFormatExtensionPointAttribute.cs
- GradientStopCollection.cs
- DynamicRouteExpression.cs
- InternalControlCollection.cs
- ComponentSerializationService.cs
- SqlCrossApplyToCrossJoin.cs
- SocketException.cs
- ResourceManager.cs
- ImageBrush.cs
- XmlSchemaSimpleTypeRestriction.cs
- sqlmetadatafactory.cs
- TemplatePartAttribute.cs
- FontStyleConverter.cs
- SQLDateTimeStorage.cs
- MergeLocalizationDirectives.cs
- DataGridViewAccessibleObject.cs
- PriorityQueue.cs
- TraceRecord.cs
- AvTraceFormat.cs
- HwndStylusInputProvider.cs
- StrongName.cs
- ControlPropertyNameConverter.cs
- CryptoStream.cs
- EmptyEnumerator.cs
- HttpListenerPrefixCollection.cs
- InvalidOleVariantTypeException.cs
- Hex.cs
- XsltFunctions.cs