Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
BinaryArray.cs
Go to the documentation of this file.
1
namespace
System.Runtime.Serialization.Formatters.Binary
;
2
3
internal
sealed
class
BinaryArray
:
IStreamable
4
{
5
internal
int
_objectId
;
6
7
internal
int
_rank
;
8
9
internal
int
[]
_lengthA
;
10
11
internal
int
[]
_lowerBoundA
;
12
13
internal
BinaryTypeEnum
_binaryTypeEnum
;
14
15
internal
object
_typeInformation
;
16
17
internal
int
_assemId
;
18
19
private
BinaryHeaderEnum
_binaryHeaderEnum
;
20
21
internal
BinaryArrayTypeEnum
_binaryArrayTypeEnum
;
22
23
internal
BinaryArray
()
24
{
25
}
26
27
internal
BinaryArray
(
BinaryHeaderEnum
binaryHeaderEnum
)
28
{
29
_binaryHeaderEnum
=
binaryHeaderEnum
;
30
}
31
32
internal
void
Set
(
int
objectId
,
int
rank
,
int
[]
lengthA
,
int
[]
lowerBoundA
,
BinaryTypeEnum
binaryTypeEnum
,
object
typeInformation
,
BinaryArrayTypeEnum
binaryArrayTypeEnum
,
int
assemId
)
33
{
34
_objectId
=
objectId
;
35
_binaryArrayTypeEnum
=
binaryArrayTypeEnum
;
36
_rank
=
rank
;
37
_lengthA
=
lengthA
;
38
_lowerBoundA
=
lowerBoundA
;
39
_binaryTypeEnum
=
binaryTypeEnum
;
40
_typeInformation
=
typeInformation
;
41
_assemId
=
assemId
;
42
_binaryHeaderEnum
=
BinaryHeaderEnum
.Array;
43
if
(
binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.Single)
44
{
45
switch
(
binaryTypeEnum
)
46
{
47
case
BinaryTypeEnum
.Primitive:
48
_binaryHeaderEnum
=
BinaryHeaderEnum
.ArraySinglePrimitive;
49
break
;
50
case
BinaryTypeEnum
.String:
51
_binaryHeaderEnum
=
BinaryHeaderEnum
.ArraySingleString;
52
break
;
53
case
BinaryTypeEnum
.Object:
54
_binaryHeaderEnum
=
BinaryHeaderEnum
.ArraySingleObject;
55
break
;
56
}
57
}
58
}
59
60
public
void
Write
(
BinaryFormatterWriter
output
)
61
{
62
switch
(
_binaryHeaderEnum
)
63
{
64
case
BinaryHeaderEnum
.ArraySinglePrimitive:
65
output
.WriteByte((
byte
)
_binaryHeaderEnum
);
66
output
.WriteInt32(
_objectId
);
67
output
.WriteInt32(
_lengthA
[0]);
68
output
.WriteByte((
byte
)(
InternalPrimitiveTypeE
)
_typeInformation
);
69
return
;
70
case
BinaryHeaderEnum
.ArraySingleString:
71
output
.WriteByte((
byte
)
_binaryHeaderEnum
);
72
output
.WriteInt32(
_objectId
);
73
output
.WriteInt32(
_lengthA
[0]);
74
return
;
75
case
BinaryHeaderEnum
.ArraySingleObject:
76
output
.WriteByte((
byte
)
_binaryHeaderEnum
);
77
output
.WriteInt32(
_objectId
);
78
output
.WriteInt32(
_lengthA
[0]);
79
return
;
80
}
81
output
.WriteByte((
byte
)
_binaryHeaderEnum
);
82
output
.WriteInt32(
_objectId
);
83
output
.WriteByte((
byte
)
_binaryArrayTypeEnum
);
84
output
.WriteInt32(
_rank
);
85
for
(
int
i = 0; i <
_rank
; i++)
86
{
87
output
.WriteInt32(
_lengthA
[i]);
88
}
89
if
(
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.SingleOffset ||
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.JaggedOffset ||
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.RectangularOffset)
90
{
91
for
(
int
j
= 0;
j
<
_rank
;
j
++)
92
{
93
output
.WriteInt32(
_lowerBoundA
[
j
]);
94
}
95
}
96
output
.WriteByte((
byte
)
_binaryTypeEnum
);
97
BinaryTypeConverter
.
WriteTypeInfo
(
_binaryTypeEnum
,
_typeInformation
,
_assemId
,
output
);
98
}
99
100
public
void
Read
(
BinaryParser
input
)
101
{
102
switch
(
_binaryHeaderEnum
)
103
{
104
case
BinaryHeaderEnum
.ArraySinglePrimitive:
105
_objectId
=
input
.ReadInt32();
106
_lengthA
=
new
int
[1];
107
_lengthA
[0] =
input
.ReadInt32();
108
_binaryArrayTypeEnum
=
BinaryArrayTypeEnum
.Single;
109
_rank
= 1;
110
_lowerBoundA
=
new
int
[
_rank
];
111
_binaryTypeEnum
=
BinaryTypeEnum
.Primitive;
112
_typeInformation
= (
InternalPrimitiveTypeE
)
input
.ReadByte();
113
return
;
114
case
BinaryHeaderEnum
.ArraySingleString:
115
_objectId
=
input
.ReadInt32();
116
_lengthA
=
new
int
[1];
117
_lengthA
[0] =
input
.ReadInt32();
118
_binaryArrayTypeEnum
=
BinaryArrayTypeEnum
.Single;
119
_rank
= 1;
120
_lowerBoundA
=
new
int
[
_rank
];
121
_binaryTypeEnum
=
BinaryTypeEnum
.String;
122
_typeInformation
=
null
;
123
return
;
124
case
BinaryHeaderEnum
.ArraySingleObject:
125
_objectId
=
input
.ReadInt32();
126
_lengthA
=
new
int
[1];
127
_lengthA
[0] =
input
.ReadInt32();
128
_binaryArrayTypeEnum
=
BinaryArrayTypeEnum
.Single;
129
_rank
= 1;
130
_lowerBoundA
=
new
int
[
_rank
];
131
_binaryTypeEnum
=
BinaryTypeEnum
.Object;
132
_typeInformation
=
null
;
133
return
;
134
}
135
_objectId
=
input
.ReadInt32();
136
_binaryArrayTypeEnum
= (
BinaryArrayTypeEnum
)
input
.ReadByte();
137
_rank
=
input
.ReadInt32();
138
_lengthA
=
new
int
[
_rank
];
139
_lowerBoundA
=
new
int
[
_rank
];
140
for
(
int
i = 0; i <
_rank
; i++)
141
{
142
_lengthA
[i] =
input
.ReadInt32();
143
}
144
if
(
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.SingleOffset ||
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.JaggedOffset ||
_binaryArrayTypeEnum
==
BinaryArrayTypeEnum
.RectangularOffset)
145
{
146
for
(
int
j
= 0;
j
<
_rank
;
j
++)
147
{
148
_lowerBoundA
[
j
] =
input
.ReadInt32();
149
}
150
}
151
_binaryTypeEnum
= (
BinaryTypeEnum
)
input
.ReadByte();
152
_typeInformation
=
BinaryTypeConverter
.
ReadTypeInfo
(
_binaryTypeEnum
,
input
,
out
_assemId
);
153
}
154
}
System.Runtime.Serialization.Formatters.Binary.BinaryArray.BinaryArray
BinaryArray(BinaryHeaderEnum binaryHeaderEnum)
Definition
BinaryArray.cs:27
System.Runtime.Serialization.Formatters.Binary.BinaryArray.Set
void Set(int objectId, int rank, int[] lengthA, int[] lowerBoundA, BinaryTypeEnum binaryTypeEnum, object typeInformation, BinaryArrayTypeEnum binaryArrayTypeEnum, int assemId)
Definition
BinaryArray.cs:32
System.Runtime.Serialization.Formatters.Binary.BinaryArray.Write
void Write(BinaryFormatterWriter output)
Definition
BinaryArray.cs:60
System.Runtime.Serialization.Formatters.Binary.BinaryArray._binaryTypeEnum
BinaryTypeEnum _binaryTypeEnum
Definition
BinaryArray.cs:13
System.Runtime.Serialization.Formatters.Binary.BinaryArray._typeInformation
object _typeInformation
Definition
BinaryArray.cs:15
System.Runtime.Serialization.Formatters.Binary.BinaryArray.Read
void Read(BinaryParser input)
Definition
BinaryArray.cs:100
System.Runtime.Serialization.Formatters.Binary.BinaryArray.BinaryArray
BinaryArray()
Definition
BinaryArray.cs:23
System.Runtime.Serialization.Formatters.Binary.BinaryArray._assemId
int _assemId
Definition
BinaryArray.cs:17
System.Runtime.Serialization.Formatters.Binary.BinaryArray._binaryArrayTypeEnum
BinaryArrayTypeEnum _binaryArrayTypeEnum
Definition
BinaryArray.cs:21
System.Runtime.Serialization.Formatters.Binary.BinaryArray._lowerBoundA
int[] _lowerBoundA
Definition
BinaryArray.cs:11
System.Runtime.Serialization.Formatters.Binary.BinaryArray._lengthA
int[] _lengthA
Definition
BinaryArray.cs:9
System.Runtime.Serialization.Formatters.Binary.BinaryArray._objectId
int _objectId
Definition
BinaryArray.cs:5
System.Runtime.Serialization.Formatters.Binary.BinaryArray._binaryHeaderEnum
BinaryHeaderEnum _binaryHeaderEnum
Definition
BinaryArray.cs:19
System.Runtime.Serialization.Formatters.Binary.BinaryArray._rank
int _rank
Definition
BinaryArray.cs:7
System.Runtime.Serialization.Formatters.Binary.BinaryArray
Definition
BinaryArray.cs:4
System.Runtime.Serialization.Formatters.Binary.BinaryFormatterWriter
Definition
BinaryFormatterWriter.cs:10
System.Runtime.Serialization.Formatters.Binary.BinaryParser
Definition
BinaryParser.cs:10
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter.ReadTypeInfo
static object ReadTypeInfo(BinaryTypeEnum binaryTypeEnum, BinaryParser input, out int assemId)
Definition
BinaryTypeConverter.cs:138
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter.WriteTypeInfo
static void WriteTypeInfo(BinaryTypeEnum binaryTypeEnum, object typeInformation, int assemId, BinaryFormatterWriter output)
Definition
BinaryTypeConverter.cs:113
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter
Definition
BinaryTypeConverter.cs:6
System.Runtime.Serialization.Formatters.Binary.IStreamable
Definition
IStreamable.cs:4
System.Runtime.Serialization.Formatters.Binary.BinaryArrayTypeEnum
BinaryArrayTypeEnum
Definition
BinaryArrayTypeEnum.cs:4
System.Runtime.Serialization.Formatters.Binary.BinaryTypeEnum
BinaryTypeEnum
Definition
BinaryTypeEnum.cs:4
System.Runtime.Serialization.Formatters.Binary.BinaryHeaderEnum
BinaryHeaderEnum
Definition
BinaryHeaderEnum.cs:4
System.Runtime.Serialization.Formatters.Binary.InternalPrimitiveTypeE
InternalPrimitiveTypeE
Definition
InternalPrimitiveTypeE.cs:4
System.Runtime.Serialization.Formatters.Binary
Definition
BinaryArray.cs:1
System.Runtime.Serialization.CollectionKind.Dictionary
@ Dictionary
System.ExceptionArgument.input
@ input
source
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
BinaryArray.cs
Generated by
1.10.0