Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
QualifiedAce.cs
Go to the documentation of this file.
2
4
5public abstract class QualifiedAce : KnownAce
6{
7 private readonly bool _isCallback;
8
9 private readonly AceQualifier _qualifier;
10
11 private byte[] _opaque;
12
14
15 public bool IsCallback => _isCallback;
16
17 internal abstract int MaxOpaqueLengthInternal { get; }
18
19 public int OpaqueLength
20 {
21 get
22 {
23 if (_opaque != null)
24 {
25 return _opaque.Length;
26 }
27 return 0;
28 }
29 }
30
31 private AceQualifier QualifierFromType(AceType type, out bool isCallback)
32 {
33 switch (type)
34 {
35 case AceType.AccessAllowed:
36 isCallback = false;
37 return AceQualifier.AccessAllowed;
38 case AceType.AccessDenied:
39 isCallback = false;
40 return AceQualifier.AccessDenied;
41 case AceType.SystemAudit:
42 isCallback = false;
43 return AceQualifier.SystemAudit;
44 case AceType.SystemAlarm:
45 isCallback = false;
46 return AceQualifier.SystemAlarm;
47 case AceType.AccessAllowedCallback:
48 isCallback = true;
49 return AceQualifier.AccessAllowed;
50 case AceType.AccessDeniedCallback:
51 isCallback = true;
52 return AceQualifier.AccessDenied;
53 case AceType.SystemAuditCallback:
54 isCallback = true;
55 return AceQualifier.SystemAudit;
56 case AceType.SystemAlarmCallback:
57 isCallback = true;
58 return AceQualifier.SystemAlarm;
59 case AceType.AccessAllowedObject:
60 isCallback = false;
61 return AceQualifier.AccessAllowed;
62 case AceType.AccessDeniedObject:
63 isCallback = false;
64 return AceQualifier.AccessDenied;
65 case AceType.SystemAuditObject:
66 isCallback = false;
67 return AceQualifier.SystemAudit;
68 case AceType.SystemAlarmObject:
69 isCallback = false;
70 return AceQualifier.SystemAlarm;
71 case AceType.AccessAllowedCallbackObject:
72 isCallback = true;
73 return AceQualifier.AccessAllowed;
74 case AceType.AccessDeniedCallbackObject:
75 isCallback = true;
76 return AceQualifier.AccessDenied;
77 case AceType.SystemAuditCallbackObject:
78 isCallback = true;
79 return AceQualifier.SystemAudit;
80 case AceType.SystemAlarmCallbackObject:
81 isCallback = true;
82 return AceQualifier.SystemAlarm;
83 default:
84 throw new InvalidOperationException();
85 }
86 }
87
88 internal QualifiedAce(AceType type, AceFlags flags, int accessMask, SecurityIdentifier sid, byte[] opaque)
89 : base(type, flags, accessMask, sid)
90 {
92 SetOpaque(opaque);
93 }
94
95 public byte[]? GetOpaque()
96 {
97 return _opaque;
98 }
99
100 public void SetOpaque(byte[]? opaque)
101 {
102 if (opaque != null)
103 {
104 if (opaque.Length > MaxOpaqueLengthInternal)
105 {
107 }
108 if (opaque.Length % 4 != 0)
109 {
111 }
112 }
113 _opaque = opaque;
114 }
115}
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string ArgumentOutOfRange_ArrayLength
Definition SR.cs:70
static string ArgumentOutOfRange_ArrayLengthMultiple
Definition SR.cs:72
Definition SR.cs:7
QualifiedAce(AceType type, AceFlags flags, int accessMask, SecurityIdentifier sid, byte[] opaque)
AceQualifier QualifierFromType(AceType type, out bool isCallback)