|
using System;
using System.Transactions;
namespace Raven.Client.Document
{
public class RavenClientEnlistment : ISinglePhaseNotification
{
private readonly IDocumentSession sessionImpl;
private readonly Guid txId;
public RavenClientEnlistment(IDocumentSession sessionImpl, Guid txId)
{
this.sessionImpl = sessionImpl;
this.txId = txId;
}
public void Prepare(PreparingEnlistment preparingEnlistment)
{
preparingEnlistment.Prepared();
}
public void Commit(Enlistment enlistment)
{
sessionImpl.Commit(txId);
enlistment.Done();
}
public void Rollback(Enlistment enlistment)
{
sessionImpl.Rollback(txId);
enlistment.Done();
}
public void InDoubt(Enlistment enlistment)
{
sessionImpl.Rollback(txId);
enlistment.Done();
}
public void Initialize()
{
}
public void SinglePhaseCommit(SinglePhaseEnlistment singlePhaseEnlistment)
{
sessionImpl.Commit(txId);
singlePhaseEnlistment.Committed();
}
public void Rollback(SinglePhaseEnlistment singlePhaseEnlistment)
{
sessionImpl.Rollback(txId);
singlePhaseEnlistment.Aborted();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been a software developer since 1996 and have enjoyed C# since 2003. I have a Bachelor's degree in Computer Science and for some reason, a Master's degree in Business Administration. I currently do software development contracting/consulting.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.