Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
DesignerTransaction.cs
Go to the documentation of this file.
2
3public abstract class DesignerTransaction : IDisposable
4{
6
7 public bool Canceled { get; private set; }
8
9 public bool Committed { get; private set; }
10
11 public string Description { get; }
12
14 : this("")
15 {
16 }
17
18 protected DesignerTransaction(string description)
19 {
20 Description = description;
21 }
22
23 public void Cancel()
24 {
25 if (!Canceled && !Committed)
26 {
27 Canceled = true;
28 GC.SuppressFinalize(this);
30 OnCancel();
31 }
32 }
33
34 public void Commit()
35 {
36 if (!Committed && !Canceled)
37 {
38 Committed = true;
39 GC.SuppressFinalize(this);
41 OnCommit();
42 }
43 }
44
45 protected abstract void OnCancel();
46
47 protected abstract void OnCommit();
48
50 {
51 Dispose(disposing: false);
52 }
53
55 {
56 Dispose(disposing: true);
58 {
59 GC.SuppressFinalize(this);
60 }
61 }
62
63 protected virtual void Dispose(bool disposing)
64 {
65 Cancel();
66 }
67}
static void SuppressFinalize(object obj)
Definition GC.cs:202
Definition GC.cs:8