Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ZipGenericExtraField.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
3
namespace
System.IO.Compression
;
4
5
internal
struct
ZipGenericExtraField
6
{
7
private
ushort
_tag
;
8
9
private
ushort
_size
;
10
11
private
byte
[]
_data
;
12
13
public
ushort
Tag
=>
_tag
;
14
15
public
ushort
Size
=>
_size
;
16
17
public
byte
[] Data =>
_data
;
18
19
public
void
WriteBlock
(
Stream
stream
)
20
{
21
BinaryWriter
binaryWriter
=
new
BinaryWriter
(
stream
);
22
binaryWriter
.Write(
Tag
);
23
binaryWriter
.Write(
Size
);
24
binaryWriter
.Write(Data);
25
}
26
27
public
static
bool
TryReadBlock
(
BinaryReader
reader,
long
endExtraField
,
out
ZipGenericExtraField
field
)
28
{
29
field
=
default
(
ZipGenericExtraField
);
30
if
(
endExtraField
- reader.
BaseStream
.Position < 4)
31
{
32
return
false
;
33
}
34
field._tag = reader.
ReadUInt16
();
35
field._size = reader.
ReadUInt16
();
36
if
(
endExtraField
- reader.
BaseStream
.Position <
field
._size)
37
{
38
return
false
;
39
}
40
field._data = reader.
ReadBytes
(
field
._size);
41
return
true
;
42
}
43
44
public
static
List<ZipGenericExtraField>
ParseExtraField
(
Stream
extraFieldData
)
45
{
46
List<ZipGenericExtraField>
list
=
new
List<ZipGenericExtraField>
();
47
using
BinaryReader
reader =
new
BinaryReader
(
extraFieldData
);
48
ZipGenericExtraField
field
;
49
while
(
TryReadBlock
(reader,
extraFieldData
.Length,
out
field
))
50
{
51
list
.
Add
(
field
);
52
}
53
return
list
;
54
}
55
56
public
static
int
TotalSize
(
List<ZipGenericExtraField>
fields)
57
{
58
int
num = 0;
59
foreach
(
ZipGenericExtraField
field
in
fields)
60
{
61
num += field.Size + 4;
62
}
63
return
num;
64
}
65
66
public
static
void
WriteAllBlocks
(
List<ZipGenericExtraField>
fields,
Stream
stream
)
67
{
68
foreach
(
ZipGenericExtraField
field
in
fields)
69
{
70
field
.WriteBlock(
stream
);
71
}
72
}
73
}
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.IO.BinaryReader.ReadUInt16
virtual ushort ReadUInt16()
Definition
BinaryReader.cs:208
System.IO.BinaryReader.BaseStream
virtual Stream BaseStream
Definition
BinaryReader.cs:29
System.IO.BinaryReader.ReadBytes
virtual byte[] ReadBytes(int count)
Definition
BinaryReader.cs:437
System.IO.BinaryReader
Definition
BinaryReader.cs:8
System.IO.BinaryWriter
Definition
BinaryWriter.cs:10
System.IO.Stream
Definition
Stream.cs:11
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.IO.Compression
Definition
BrotliDecoder.cs:5
System.ExceptionArgument.list
@ list
System.ExceptionArgument.stream
@ stream
System.IO.Compression.ZipGenericExtraField._size
ushort _size
Definition
ZipGenericExtraField.cs:9
System.IO.Compression.ZipGenericExtraField.ParseExtraField
static List< ZipGenericExtraField > ParseExtraField(Stream extraFieldData)
Definition
ZipGenericExtraField.cs:44
System.IO.Compression.ZipGenericExtraField._data
byte[] _data
Definition
ZipGenericExtraField.cs:11
System.IO.Compression.ZipGenericExtraField.TotalSize
static int TotalSize(List< ZipGenericExtraField > fields)
Definition
ZipGenericExtraField.cs:56
System.IO.Compression.ZipGenericExtraField.Tag
ushort Tag
Definition
ZipGenericExtraField.cs:13
System.IO.Compression.ZipGenericExtraField._tag
ushort _tag
Definition
ZipGenericExtraField.cs:7
System.IO.Compression.ZipGenericExtraField.WriteBlock
void WriteBlock(Stream stream)
Definition
ZipGenericExtraField.cs:19
System.IO.Compression.ZipGenericExtraField.WriteAllBlocks
static void WriteAllBlocks(List< ZipGenericExtraField > fields, Stream stream)
Definition
ZipGenericExtraField.cs:66
System.IO.Compression.ZipGenericExtraField.TryReadBlock
static bool TryReadBlock(BinaryReader reader, long endExtraField, out ZipGenericExtraField field)
Definition
ZipGenericExtraField.cs:27
System.IO.Compression.ZipGenericExtraField.Size
ushort Size
Definition
ZipGenericExtraField.cs:15
System.IO.Compression.ZipGenericExtraField
Definition
ZipGenericExtraField.cs:6
source
System.IO.Compression
System.IO.Compression
ZipGenericExtraField.cs
Generated by
1.10.0