forked from ravendb/ravendb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ITransactionalDocumentSession.cs
48 lines (43 loc) · 1.7 KB
/
ITransactionalDocumentSession.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//-----------------------------------------------------------------------
// <copyright file="ITransactionalDocumentSession.cs" company="Hibernating Rhinos LTD">
// Copyright (c) Hibernating Rhinos LTD. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
using System;
namespace Raven.Client
{
/// <summary>
/// Implementors of this interface provide transactional operations
/// Note that this interface is mostly useful only for expert usage
/// </summary>
public interface ITransactionalDocumentSession
{
/// <summary>
/// The transaction resource manager identifier
/// </summary>
Guid ResourceManagerId { get; }
/// <summary>
/// Commits the transaction specified.
/// </summary>
/// <param name="txId">The tx id.</param>
void Commit(Guid txId);
/// <summary>
/// Rollbacks the transaction specified.
/// </summary>
/// <param name="txId">The tx id.</param>
void Rollback(Guid txId);
/// <summary>
/// Promotes a transaction specified to a distributed transaction
/// </summary>
/// <param name="fromTxId">From tx id.</param>
/// <returns>The token representing the distributed transaction</returns>
byte[] PromoteTransaction(Guid fromTxId);
/// <summary>
/// Stores the recovery information for the specified transaction
/// </summary>
/// <param name="resourceManagerId">The resource manager Id for this transaction</param>
/// <param name="txId">The tx id.</param>
/// <param name="recoveryInformation">The recovery information.</param>
void StoreRecoveryInformation(Guid resourceManagerId, Guid txId, byte[] recoveryInformation);
}
}