Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
IncrementalReadCharsDecoder.cs
Go to the documentation of this file.
1namespace System.Xml;
2
4{
5 private char[] _buffer;
6
7 private int _startIndex;
8
9 private int _curIndex;
10
11 private int _endIndex;
12
13 internal override int DecodedCount => _curIndex - _startIndex;
14
15 internal override bool IsFull => _curIndex == _endIndex;
16
17 internal override int Decode(char[] chars, int startPos, int len)
18 {
19 int num = _endIndex - _curIndex;
20 if (num > len)
21 {
22 num = len;
23 }
24 Buffer.BlockCopy(chars, startPos * 2, _buffer, _curIndex * 2, num * 2);
25 _curIndex += num;
26 return num;
27 }
28
29 internal override int Decode(string str, int startPos, int len)
30 {
31 int num = _endIndex - _curIndex;
32 if (num > len)
33 {
34 num = len;
35 }
36 str.CopyTo(startPos, _buffer, _curIndex, num);
37 _curIndex += num;
38 return num;
39 }
40
41 internal override void Reset()
42 {
43 }
44
45 internal override void SetNextOutputBuffer(Array buffer, int index, int count)
46 {
47 _buffer = (char[])buffer;
51 }
52}
static void BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count)
Definition Buffer.cs:102
override int Decode(string str, int startPos, int len)
override void SetNextOutputBuffer(Array buffer, int index, int count)
override int Decode(char[] chars, int startPos, int len)