Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MemoryStreamAdapter.cs
Go to the documentation of this file.
1
using
System.IO
;
2
3
namespace
System.Runtime.Serialization
;
4
5
[DataContract(
Name
=
"MemoryStream"
, Namespace =
"http://schemas.datacontract.org/2004/07/System.IO"
)]
6
internal
sealed
class
MemoryStreamAdapter
:
MarshalByRefObjectAdapter
7
{
8
[
DataMember
(
Name
=
"_buffer"
, Order = 1)]
9
public
byte
[]
Buffer
{
get
;
set
; }
10
11
[
DataMember
(
Name
=
"_capacity"
, Order = 2)]
12
public
int
Capacity
{
get
;
set
; }
13
14
[
DataMember
(
Name
=
"_expandable"
, Order = 3)]
15
public
bool
Expandable
{
get
;
set
; }
16
17
[
DataMember
(
Name
=
"_exposable"
, Order = 4)]
18
public
bool
Exposable
{
get
;
set
; }
19
20
[
DataMember
(
Name
=
"_isOpen"
, Order = 5)]
21
public
bool
IsOpen
{
get
;
set
; }
22
23
[
DataMember
(
Name
=
"_length"
, Order = 6)]
24
public
int
Length
{
get
;
set
; }
25
26
[
DataMember
(
Name
=
"_origin"
, Order = 7)]
27
public
int
Origin
{
get
;
set
; }
28
29
[
DataMember
(
Name
=
"_position"
, Order = 8)]
30
public
int
Position
{
get
;
set
; }
31
32
[
DataMember
(
Name
=
"_writable"
, Order = 9)]
33
public
bool
Writable
{
get
;
set
; }
34
35
public
static
MemoryStream
GetMemoryStream
(
MemoryStreamAdapter
value
)
36
{
37
byte
[]
array
=
value
.Buffer;
38
Span<byte>
span
=
value
.Buffer.AsSpan(
value
.Origin,
value
.Length -
value
.Origin);
39
if
(
span
.Length <
array
.Length)
40
{
41
array
=
span
.
ToArray
();
42
}
43
MemoryStream
memoryStream
=
new
MemoryStream
(
array
, 0,
array
.Length,
value
.Writable,
value
.Exposable);
44
int
num =
value.Position
-
value
.Origin;
45
if
(
num < 0 || num >
memoryStream
.Length)
46
{
47
throw
new
InvalidOperationException
();
48
}
49
memoryStream.Position
= num;
50
return
memoryStream
;
51
}
52
53
public
static
MemoryStreamAdapter
GetMemoryStreamAdapter
(
MemoryStream
memoryStream
)
54
{
55
MemoryStreamAdapter
memoryStreamAdapter
=
new
MemoryStreamAdapter
();
56
if
(
memoryStream
.TryGetBuffer(
out
var
buffer
))
57
{
58
memoryStreamAdapter.Exposable
=
true
;
59
if
(
buffer
.Count ==
buffer
.Array.Length)
60
{
61
memoryStreamAdapter.Buffer
=
buffer
.Array;
62
}
63
}
64
MemoryStreamAdapter
memoryStreamAdapter2
=
memoryStreamAdapter
;
65
if
(
memoryStreamAdapter2
.Buffer ==
null
)
66
{
67
byte
[]
array2
= (
memoryStreamAdapter2.Buffer
=
memoryStream
.ToArray());
68
}
69
checked
70
{
71
memoryStreamAdapter.Length
= (int)
memoryStream
.
Length
;
72
memoryStreamAdapter.Capacity
=
memoryStream
.Capacity;
73
memoryStreamAdapter.Position
= (int)
memoryStream
.Position;
74
memoryStreamAdapter.Writable
=
memoryStream
.CanWrite;
75
memoryStreamAdapter.Origin
= 0;
76
memoryStreamAdapter.Expandable
=
false
;
77
memoryStreamAdapter.IsOpen
=
true
;
78
return
memoryStreamAdapter
;
79
}
80
}
81
}
Position
Position
Definition
ImmutableDictionary.cs:625
System.Buffer
Definition
Buffer.cs:8
System.IO.MemoryStream
Definition
MemoryStream.cs:9
System.InvalidOperationException
Definition
InvalidOperationException.cs:9
System.Runtime.Serialization.DataMember
Definition
DataMember.cs:7
System.Runtime.Serialization.MarshalByRefObjectAdapter
Definition
MarshalByRefObjectAdapter.cs:5
System.Runtime.Serialization.MemoryStreamAdapter.Writable
bool Writable
Definition
MemoryStreamAdapter.cs:33
System.Runtime.Serialization.MemoryStreamAdapter.IsOpen
bool IsOpen
Definition
MemoryStreamAdapter.cs:21
System.Runtime.Serialization.MemoryStreamAdapter.Length
int Length
Definition
MemoryStreamAdapter.cs:24
System.Runtime.Serialization.MemoryStreamAdapter.Exposable
bool Exposable
Definition
MemoryStreamAdapter.cs:18
System.Runtime.Serialization.MemoryStreamAdapter.Origin
int Origin
Definition
MemoryStreamAdapter.cs:27
System.Runtime.Serialization.MemoryStreamAdapter.Expandable
bool Expandable
Definition
MemoryStreamAdapter.cs:15
System.Runtime.Serialization.MemoryStreamAdapter.GetMemoryStream
static MemoryStream GetMemoryStream(MemoryStreamAdapter value)
Definition
MemoryStreamAdapter.cs:35
System.Runtime.Serialization.MemoryStreamAdapter.GetMemoryStreamAdapter
static MemoryStreamAdapter GetMemoryStreamAdapter(MemoryStream memoryStream)
Definition
MemoryStreamAdapter.cs:53
System.Runtime.Serialization.MemoryStreamAdapter.Capacity
int Capacity
Definition
MemoryStreamAdapter.cs:12
System.Runtime.Serialization.MemoryStreamAdapter
Definition
MemoryStreamAdapter.cs:7
System.IO
Definition
ConsoleStream.cs:3
System.Runtime.Serialization.CollectionKind.Dictionary
@ Dictionary
System.Runtime.Serialization
Definition
SerializationGuard.cs:3
System.TypeNameKind.Name
@ Name
System.ExceptionArgument.value
@ value
System.ExceptionArgument.buffer
@ buffer
System.ExceptionArgument.array
@ array
System.Span.ToArray
T[] ToArray()
Definition
Span.cs:291
System.Span
Definition
Span.cs:14
source
System.Private.DataContractSerialization
System.Runtime.Serialization
MemoryStreamAdapter.cs
Generated by
1.10.0