-
Notifications
You must be signed in to change notification settings - Fork 892
/
Copy pathCheckoutOptions.cs
53 lines (47 loc) · 1.85 KB
/
CheckoutOptions.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
49
50
51
52
53
using LibGit2Sharp.Core;
using LibGit2Sharp.Handlers;
namespace LibGit2Sharp
{
/// <summary>
/// Collection of parameters controlling Checkout behavior.
/// </summary>
public sealed class CheckoutOptions : IConvertableToGitCheckoutOpts
{
/// <summary>
/// Options controlling checkout behavior.
/// </summary>
public CheckoutModifiers CheckoutModifiers { get; set; }
/// <summary>
/// The flags specifying what conditions are
/// reported through the OnCheckoutNotify delegate.
/// </summary>
public CheckoutNotifyFlags CheckoutNotifyFlags { get; set; }
/// <summary>
/// Delegate to be called during checkout for files that match
/// desired filter specified with the NotifyFlags property.
/// </summary>
public CheckoutNotifyHandler OnCheckoutNotify { get; set; }
/// Delegate through which checkout will notify callers of
/// certain conditions. The conditions that are reported is
/// controlled with the CheckoutNotifyFlags property.
public CheckoutProgressHandler OnCheckoutProgress { get; set; }
CheckoutStrategy IConvertableToGitCheckoutOpts.CheckoutStrategy
{
get
{
return CheckoutModifiers.HasFlag(CheckoutModifiers.Force)
? CheckoutStrategy.GIT_CHECKOUT_FORCE
: CheckoutStrategy.GIT_CHECKOUT_SAFE;
}
}
/// <summary>
/// Generate a <see cref="CheckoutCallbacks"/> object with the delegates
/// hooked up to the native callbacks.
/// </summary>
/// <returns></returns>
CheckoutCallbacks IConvertableToGitCheckoutOpts.GenerateCallbacks()
{
return CheckoutCallbacks.From(OnCheckoutProgress, OnCheckoutNotify);
}
}
}