Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
RangeHeaderValue.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
System.Diagnostics.CodeAnalysis
;
3
using
System.Text
;
4
5
namespace
System.Net.Http.Headers
;
6
7
public
class
RangeHeaderValue
:
ICloneable
8
{
9
private
string
_unit
;
10
11
private
ObjectCollection<RangeItemHeaderValue>
_ranges
;
12
13
public
string
Unit
14
{
15
get
16
{
17
return
_unit
;
18
}
19
set
20
{
21
HeaderUtilities
.
CheckValidToken
(
value
,
"value"
);
22
_unit
=
value
;
23
}
24
}
25
26
public
ICollection<RangeItemHeaderValue>
Ranges
=>
_ranges
?? (
_ranges
=
new
ObjectCollection<RangeItemHeaderValue>
());
27
28
public
RangeHeaderValue
()
29
{
30
_unit
=
"bytes"
;
31
}
32
33
public
RangeHeaderValue
(
long
?
from
,
long
?
to
)
34
{
35
_unit
=
"bytes"
;
36
Ranges
.
Add
(
new
RangeItemHeaderValue
(
from
,
to
));
37
}
38
39
private
RangeHeaderValue
(
RangeHeaderValue
source
)
40
{
41
_unit
=
source
._unit;
42
if
(
source
._ranges ==
null
)
43
{
44
return
;
45
}
46
foreach
(
RangeItemHeaderValue
range
in
source
._ranges)
47
{
48
Ranges
.
Add
(
new
RangeItemHeaderValue
(
range
));
49
}
50
}
51
52
public
override
string
ToString
()
53
{
54
StringBuilder
stringBuilder
=
System
.
Text
.
StringBuilderCache
.
Acquire
();
55
stringBuilder
.Append(
_unit
);
56
stringBuilder
.Append(
'='
);
57
if
(
_ranges
!=
null
)
58
{
59
bool
flag =
true
;
60
foreach
(
RangeItemHeaderValue
range
in
_ranges
)
61
{
62
if
(flag)
63
{
64
flag =
false
;
65
}
66
else
67
{
68
stringBuilder
.Append(
", "
);
69
}
70
if
(
range
.From.HasValue)
71
{
72
stringBuilder
.Append(
range
.From.GetValueOrDefault());
73
}
74
stringBuilder
.Append(
'-'
);
75
if
(
range
.To.HasValue)
76
{
77
stringBuilder
.Append(
range
.To.GetValueOrDefault());
78
}
79
}
80
}
81
return
System
.
Text
.
StringBuilderCache
.
GetStringAndRelease
(
stringBuilder
);
82
}
83
84
public
override
bool
Equals
([
NotNullWhen
(
true
)]
object
?
obj
)
85
{
86
if
(!(
obj
is
RangeHeaderValue
rangeHeaderValue
))
87
{
88
return
false
;
89
}
90
if
(
string
.
Equals
(
_unit
,
rangeHeaderValue
._unit,
StringComparison
.OrdinalIgnoreCase))
91
{
92
return
HeaderUtilities
.AreEqualCollections(
_ranges
,
rangeHeaderValue
._ranges);
93
}
94
return
false
;
95
}
96
97
public
override
int
GetHashCode
()
98
{
99
int
num =
StringComparer
.
OrdinalIgnoreCase
.GetHashCode(
_unit
);
100
if
(
_ranges
!=
null
)
101
{
102
foreach
(
RangeItemHeaderValue
range
in
_ranges
)
103
{
104
num ^=
range
.GetHashCode();
105
}
106
}
107
return
num;
108
}
109
110
public
static
RangeHeaderValue
Parse
(
string
?
input
)
111
{
112
int
index
= 0;
113
return
(
RangeHeaderValue
)
GenericHeaderParser
.
RangeParser
.ParseValue(
input
,
null
,
ref
index
);
114
}
115
116
public
static
bool
TryParse
([
NotNullWhen
(
true
)]
string
?
input
, [
NotNullWhen
(
true
)]
out
RangeHeaderValue
?
parsedValue
)
117
{
118
int
index
= 0;
119
parsedValue
=
null
;
120
if
(
GenericHeaderParser
.
RangeParser
.TryParseValue(
input
,
null
,
ref
index
,
out
var
parsedValue2
))
121
{
122
parsedValue
= (
RangeHeaderValue
)
parsedValue2
;
123
return
true
;
124
}
125
return
false
;
126
}
127
128
internal
static
int
GetRangeLength
(
string
input
,
int
startIndex
,
out
object
parsedValue
)
129
{
130
parsedValue
=
null
;
131
if
(
string
.IsNullOrEmpty(
input
) ||
startIndex
>=
input
.Length)
132
{
133
return
0;
134
}
135
int
tokenLength
=
HttpRuleParser
.
GetTokenLength
(
input
,
startIndex
);
136
if
(
tokenLength
== 0)
137
{
138
return
0;
139
}
140
RangeHeaderValue
rangeHeaderValue
=
new
RangeHeaderValue
();
141
rangeHeaderValue._unit =
input
.Substring(
startIndex
,
tokenLength
);
142
int
num =
startIndex
+
tokenLength
;
143
num +=
HttpRuleParser
.
GetWhitespaceLength
(
input
, num);
144
if
(num ==
input
.Length ||
input
[num] !=
'='
)
145
{
146
return
0;
147
}
148
num++;
149
num +=
HttpRuleParser
.
GetWhitespaceLength
(
input
, num);
150
int
rangeItemListLength
=
RangeItemHeaderValue
.
GetRangeItemListLength
(
input
, num,
rangeHeaderValue
.Ranges);
151
if
(
rangeItemListLength
== 0)
152
{
153
return
0;
154
}
155
num +=
rangeItemListLength
;
156
parsedValue
=
rangeHeaderValue
;
157
return
num -
startIndex
;
158
}
159
160
object
ICloneable
.
Clone
()
161
{
162
return
new
RangeHeaderValue
(
this
);
163
}
164
}
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Net.Http.Headers.GenericHeaderParser.RangeParser
static readonly GenericHeaderParser RangeParser
Definition
GenericHeaderParser.cs:33
System.Net.Http.Headers.GenericHeaderParser
Definition
GenericHeaderParser.cs:6
System.Net.Http.Headers.HeaderUtilities.CheckValidToken
static void CheckValidToken(string value, string parameterName)
Definition
HeaderUtilities.cs:105
System.Net.Http.Headers.HeaderUtilities
Definition
HeaderUtilities.cs:9
System.Net.Http.Headers.RangeHeaderValue._ranges
ObjectCollection< RangeItemHeaderValue > _ranges
Definition
RangeHeaderValue.cs:11
System.Net.Http.Headers.RangeHeaderValue._unit
string _unit
Definition
RangeHeaderValue.cs:9
System.Net.Http.Headers.RangeHeaderValue.ToString
override string ToString()
Definition
RangeHeaderValue.cs:52
System.Net.Http.Headers.RangeHeaderValue.RangeHeaderValue
RangeHeaderValue()
Definition
RangeHeaderValue.cs:28
System.Net.Http.Headers.RangeHeaderValue.Parse
static RangeHeaderValue Parse(string? input)
Definition
RangeHeaderValue.cs:110
System.Net.Http.Headers.RangeHeaderValue.RangeHeaderValue
RangeHeaderValue(long? from, long? to)
Definition
RangeHeaderValue.cs:33
System.Net.Http.Headers.RangeHeaderValue.RangeHeaderValue
RangeHeaderValue(RangeHeaderValue source)
Definition
RangeHeaderValue.cs:39
System.Net.Http.Headers.RangeHeaderValue.Unit
string Unit
Definition
RangeHeaderValue.cs:14
System.Net.Http.Headers.RangeHeaderValue.GetHashCode
override int GetHashCode()
Definition
RangeHeaderValue.cs:97
System.Net.Http.Headers.RangeHeaderValue.TryParse
static bool TryParse([NotNullWhen(true)] string? input, [NotNullWhen(true)] out RangeHeaderValue? parsedValue)
Definition
RangeHeaderValue.cs:116
System.Net.Http.Headers.RangeHeaderValue.GetRangeLength
static int GetRangeLength(string input, int startIndex, out object parsedValue)
Definition
RangeHeaderValue.cs:128
System.Net.Http.Headers.RangeHeaderValue.Ranges
ICollection< RangeItemHeaderValue > Ranges
Definition
RangeHeaderValue.cs:26
System.Net.Http.Headers.RangeHeaderValue.Equals
override bool Equals([NotNullWhen(true)] object? obj)
Definition
RangeHeaderValue.cs:84
System.Net.Http.Headers.RangeHeaderValue
Definition
RangeHeaderValue.cs:8
System.Net.Http.Headers.RangeItemHeaderValue.GetRangeItemListLength
static int GetRangeItemListLength(string input, int startIndex, ICollection< RangeItemHeaderValue > rangeCollection)
Definition
RangeItemHeaderValue.cs:110
System.Net.Http.Headers.RangeItemHeaderValue
Definition
RangeItemHeaderValue.cs:9
System.Net.Http.HttpRuleParser.GetTokenLength
static int GetTokenLength(string input, int startIndex)
Definition
HttpRuleParser.cs:47
System.Net.Http.HttpRuleParser.GetWhitespaceLength
static int GetWhitespaceLength(string input, int startIndex)
Definition
HttpRuleParser.cs:92
System.Net.Http.HttpRuleParser
Definition
HttpRuleParser.cs:6
System.StringComparer.OrdinalIgnoreCase
static StringComparer OrdinalIgnoreCase
Definition
StringComparer.cs:23
System.StringComparer
Definition
StringComparer.cs:12
System.Text.StringBuilderCache.GetStringAndRelease
static string GetStringAndRelease(StringBuilder sb)
Definition
StringBuilderCache.cs:31
System.Text.StringBuilderCache.Acquire
static StringBuilder Acquire(int capacity=16)
Definition
StringBuilderCache.cs:8
System.Text.StringBuilderCache
Definition
StringBuilderCache.cs:4
System.Text.StringBuilder
Definition
StringBuilder.cs:14
System.ICloneable.Clone
object Clone()
System.ICloneable
Definition
ICloneable.cs:4
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Net.Http.Headers
Definition
AltSvcHeaderParser.cs:4
System.Net.CookieToken.Equals
@ Equals
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.startIndex
@ startIndex
System.ExceptionArgument.value
@ value
System.ExceptionArgument.source
@ source
System.ExceptionArgument.index
@ index
System.ExceptionArgument.input
@ input
System.ExceptionArgument.obj
@ obj
System.StringComparison
StringComparison
Definition
StringComparison.cs:4
System
Definition
BlockingCollection.cs:8
source
System.Net.Http
System.Net.Http.Headers
RangeHeaderValue.cs
Generated by
1.10.0