Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SecurePooledObject.cs
Go to the documentation of this file.
1
using
System.Diagnostics.CodeAnalysis
;
2
using
System.Runtime.CompilerServices
;
3
4
namespace
System.Collections.Immutable
;
5
6
internal
sealed
class
SecurePooledObject
<T>
7
{
8
private
readonly T
_value
;
9
10
private
int
_owner
;
11
12
internal
int
Owner
13
{
14
get
15
{
16
return
_owner
;
17
}
18
set
19
{
20
_owner
=
value
;
21
}
22
}
23
24
internal
SecurePooledObject
(T newValue)
25
{
26
Requires
.NotNullAllowStructs(newValue,
"newValue"
);
27
_value
= newValue;
28
}
29
30
internal
T
Use<TCaller>
(ref TCaller caller) where TCaller :
struct
,
ISecurePooledObjectUser
31
{
32
if
(!IsOwned(ref caller))
33
{
34
Requires
.FailObjectDisposed(caller);
35
}
36
return
_value
;
37
}
38
39
internal
bool
TryUse<TCaller>
(ref TCaller caller, [MaybeNullWhen(
false
)] out T
value
) where TCaller :
struct
,
ISecurePooledObjectUser
40
{
41
if
(IsOwned(ref caller))
42
{
43
value
=
_value
;
44
return
true
;
45
}
46
value
=
default
(T);
47
return
false
;
48
}
49
50
[MethodImpl(
MethodImplOptions
.AggressiveInlining)]
51
internal
bool
IsOwned<TCaller>
(ref TCaller caller) where TCaller :
struct
,
ISecurePooledObjectUser
52
{
53
return
caller.PoolUserId ==
_owner
;
54
}
55
}
System.Collections.Immutable.Requires
Definition
Requires.cs:7
System.Collections.Immutable.SecurePooledObject.Owner
int Owner
Definition
SecurePooledObject.cs:13
System.Collections.Immutable.SecurePooledObject.TryUse< TCaller >
bool TryUse< TCaller >(ref TCaller caller, [MaybeNullWhen(false)] out T value)
Definition
SecurePooledObject.cs:39
System.Collections.Immutable.SecurePooledObject.Use< TCaller >
T Use< TCaller >(ref TCaller caller)
Definition
SecurePooledObject.cs:30
System.Collections.Immutable.SecurePooledObject.IsOwned< TCaller >
bool IsOwned< TCaller >(ref TCaller caller)
Definition
SecurePooledObject.cs:51
System.Collections.Immutable.SecurePooledObject._value
readonly T _value
Definition
SecurePooledObject.cs:8
System.Collections.Immutable.SecurePooledObject.SecurePooledObject
SecurePooledObject(T newValue)
Definition
SecurePooledObject.cs:24
System.Collections.Immutable.SecurePooledObject._owner
int _owner
Definition
SecurePooledObject.cs:10
System.Collections.Immutable.SecurePooledObject
Definition
SecurePooledObject.cs:7
System.Collections.Immutable.ISecurePooledObjectUser
Definition
ISecurePooledObjectUser.cs:4
System.Collections.Immutable
Definition
AllocFreeConcurrentStack.cs:4
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Runtime.CompilerServices.MethodImplOptions
MethodImplOptions
Definition
MethodImplOptions.cs:5
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.ExceptionArgument.value
@ value
source
System.Collections.Immutable
System.Collections.Immutable
SecurePooledObject.cs
Generated by
1.10.0