Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CacheControlHeaderValue.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
System.Diagnostics.CodeAnalysis
;
3
using
System.Globalization
;
4
using
System.Text
;
5
6
namespace
System.Net.Http.Headers
;
7
8
public
class
CacheControlHeaderValue
:
ICloneable
9
{
10
private
static
readonly
HttpHeaderParser
s_nameValueListParser
=
GenericHeaderParser
.
MultipleValueNameValueParser
;
11
12
private
static
readonly
Action<string>
s_checkIsValidToken
=
CheckIsValidToken
;
13
14
private
bool
_noCache
;
15
16
private
ObjectCollection<string>
_noCacheHeaders
;
17
18
private
bool
_noStore
;
19
20
private
TimeSpan
?
_maxAge
;
21
22
private
TimeSpan
?
_sharedMaxAge
;
23
24
private
bool
_maxStale
;
25
26
private
TimeSpan
?
_maxStaleLimit
;
27
28
private
TimeSpan
?
_minFresh
;
29
30
private
bool
_noTransform
;
31
32
private
bool
_onlyIfCached
;
33
34
private
bool
_publicField
;
35
36
private
bool
_privateField
;
37
38
private
ObjectCollection<string>
_privateHeaders
;
39
40
private
bool
_mustRevalidate
;
41
42
private
bool
_proxyRevalidate
;
43
44
private
ObjectCollection<NameValueHeaderValue>
_extensions
;
45
46
public
bool
NoCache
47
{
48
get
49
{
50
return
_noCache
;
51
}
52
set
53
{
54
_noCache
=
value
;
55
}
56
}
57
58
public
ICollection<string>
NoCacheHeaders
=>
_noCacheHeaders
?? (
_noCacheHeaders
=
new
ObjectCollection<string>
(
s_checkIsValidToken
));
59
60
public
bool
NoStore
61
{
62
get
63
{
64
return
_noStore
;
65
}
66
set
67
{
68
_noStore
=
value
;
69
}
70
}
71
72
public
TimeSpan
?
MaxAge
73
{
74
get
75
{
76
return
_maxAge
;
77
}
78
set
79
{
80
_maxAge
=
value
;
81
}
82
}
83
84
public
TimeSpan
?
SharedMaxAge
85
{
86
get
87
{
88
return
_sharedMaxAge
;
89
}
90
set
91
{
92
_sharedMaxAge
=
value
;
93
}
94
}
95
96
public
bool
MaxStale
97
{
98
get
99
{
100
return
_maxStale
;
101
}
102
set
103
{
104
_maxStale
=
value
;
105
}
106
}
107
108
public
TimeSpan
?
MaxStaleLimit
109
{
110
get
111
{
112
return
_maxStaleLimit
;
113
}
114
set
115
{
116
_maxStaleLimit
=
value
;
117
}
118
}
119
120
public
TimeSpan
?
MinFresh
121
{
122
get
123
{
124
return
_minFresh
;
125
}
126
set
127
{
128
_minFresh
=
value
;
129
}
130
}
131
132
public
bool
NoTransform
133
{
134
get
135
{
136
return
_noTransform
;
137
}
138
set
139
{
140
_noTransform
=
value
;
141
}
142
}
143
144
public
bool
OnlyIfCached
145
{
146
get
147
{
148
return
_onlyIfCached
;
149
}
150
set
151
{
152
_onlyIfCached
=
value
;
153
}
154
}
155
156
public
bool
Public
157
{
158
get
159
{
160
return
_publicField
;
161
}
162
set
163
{
164
_publicField
=
value
;
165
}
166
}
167
168
public
bool
Private
169
{
170
get
171
{
172
return
_privateField
;
173
}
174
set
175
{
176
_privateField
=
value
;
177
}
178
}
179
180
public
ICollection<string>
PrivateHeaders
=>
_privateHeaders
?? (
_privateHeaders
=
new
ObjectCollection<string>
(
s_checkIsValidToken
));
181
182
public
bool
MustRevalidate
183
{
184
get
185
{
186
return
_mustRevalidate
;
187
}
188
set
189
{
190
_mustRevalidate
=
value
;
191
}
192
}
193
194
public
bool
ProxyRevalidate
195
{
196
get
197
{
198
return
_proxyRevalidate
;
199
}
200
set
201
{
202
_proxyRevalidate
=
value
;
203
}
204
}
205
206
public
ICollection<NameValueHeaderValue>
Extensions
=>
_extensions
?? (
_extensions
=
new
ObjectCollection<NameValueHeaderValue>
());
207
208
public
CacheControlHeaderValue
()
209
{
210
}
211
212
private
CacheControlHeaderValue
(
CacheControlHeaderValue
source
)
213
{
214
_noCache
=
source
._noCache;
215
_noStore
=
source
._noStore;
216
_maxAge
=
source
._maxAge;
217
_sharedMaxAge
=
source
._sharedMaxAge;
218
_maxStale
=
source
._maxStale;
219
_maxStaleLimit
=
source
._maxStaleLimit;
220
_minFresh
=
source
._minFresh;
221
_noTransform
=
source
._noTransform;
222
_onlyIfCached
=
source
._onlyIfCached;
223
_publicField
=
source
._publicField;
224
_privateField
=
source
._privateField;
225
_mustRevalidate
=
source
._mustRevalidate;
226
_proxyRevalidate
=
source
._proxyRevalidate;
227
if
(
source
._noCacheHeaders !=
null
)
228
{
229
foreach
(
string
noCacheHeader
in
source
._noCacheHeaders)
230
{
231
NoCacheHeaders
.
Add
(
noCacheHeader
);
232
}
233
}
234
if
(
source
._privateHeaders !=
null
)
235
{
236
foreach
(
string
privateHeader
in
source
._privateHeaders)
237
{
238
PrivateHeaders
.
Add
(
privateHeader
);
239
}
240
}
241
_extensions
=
source
._extensions.Clone();
242
}
243
244
public
override
string
ToString
()
245
{
246
StringBuilder
stringBuilder
=
System
.
Text
.
StringBuilderCache
.
Acquire
();
247
AppendValueIfRequired
(
stringBuilder
,
_noStore
,
"no-store"
);
248
AppendValueIfRequired
(
stringBuilder
,
_noTransform
,
"no-transform"
);
249
AppendValueIfRequired
(
stringBuilder
,
_onlyIfCached
,
"only-if-cached"
);
250
AppendValueIfRequired
(
stringBuilder
,
_publicField
,
"public"
);
251
AppendValueIfRequired
(
stringBuilder
,
_mustRevalidate
,
"must-revalidate"
);
252
AppendValueIfRequired
(
stringBuilder
,
_proxyRevalidate
,
"proxy-revalidate"
);
253
if
(
_noCache
)
254
{
255
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"no-cache"
);
256
if
(
_noCacheHeaders
!=
null
&&
_noCacheHeaders
.
Count
> 0)
257
{
258
stringBuilder
.Append(
"=\""
);
259
AppendValues
(
stringBuilder
,
_noCacheHeaders
);
260
stringBuilder
.Append(
'"'
);
261
}
262
}
263
if
(
_maxAge
.HasValue)
264
{
265
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"max-age"
);
266
stringBuilder
.Append(
'='
);
267
int
num = (int)
_maxAge
.GetValueOrDefault().
TotalSeconds
;
268
if
(num >= 0)
269
{
270
stringBuilder
.Append(num);
271
}
272
else
273
{
274
StringBuilder
stringBuilder2
=
stringBuilder
;
275
StringBuilder
stringBuilder3
=
stringBuilder2
;
276
IFormatProvider
invariantInfo
=
NumberFormatInfo
.
InvariantInfo
;
277
IFormatProvider
provider
=
invariantInfo
;
278
StringBuilder.AppendInterpolatedStringHandler
handler =
new
StringBuilder
.
AppendInterpolatedStringHandler
(0, 1,
stringBuilder2
,
invariantInfo
);
279
handler.
AppendFormatted
(num);
280
stringBuilder3
.Append(
provider
,
ref
handler);
281
}
282
}
283
if
(
_sharedMaxAge
.HasValue)
284
{
285
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"s-maxage"
);
286
stringBuilder
.Append(
'='
);
287
int
num2
= (int)
_sharedMaxAge
.GetValueOrDefault().
TotalSeconds
;
288
if
(
num2
>= 0)
289
{
290
stringBuilder
.Append(
num2
);
291
}
292
else
293
{
294
StringBuilder
stringBuilder2
=
stringBuilder
;
295
StringBuilder
stringBuilder4
=
stringBuilder2
;
296
IFormatProvider
invariantInfo
=
NumberFormatInfo
.
InvariantInfo
;
297
IFormatProvider
provider2
=
invariantInfo
;
298
StringBuilder.AppendInterpolatedStringHandler
handler2
=
new
StringBuilder
.
AppendInterpolatedStringHandler
(0, 1,
stringBuilder2
,
invariantInfo
);
299
handler2
.AppendFormatted(
num2
);
300
stringBuilder4
.Append(
provider2
,
ref
handler2
);
301
}
302
}
303
if
(
_maxStale
)
304
{
305
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"max-stale"
);
306
if
(
_maxStaleLimit
.HasValue)
307
{
308
stringBuilder
.Append(
'='
);
309
int
num3
= (int)
_maxStaleLimit
.GetValueOrDefault().
TotalSeconds
;
310
if
(
num3
>= 0)
311
{
312
stringBuilder
.Append(
num3
);
313
}
314
else
315
{
316
StringBuilder
stringBuilder2
=
stringBuilder
;
317
StringBuilder
stringBuilder5
=
stringBuilder2
;
318
IFormatProvider
invariantInfo
=
NumberFormatInfo
.
InvariantInfo
;
319
IFormatProvider
provider3
=
invariantInfo
;
320
StringBuilder.AppendInterpolatedStringHandler
handler3
=
new
StringBuilder
.
AppendInterpolatedStringHandler
(0, 1,
stringBuilder2
,
invariantInfo
);
321
handler3
.AppendFormatted(
num3
);
322
stringBuilder5
.Append(
provider3
,
ref
handler3
);
323
}
324
}
325
}
326
if
(
_minFresh
.HasValue)
327
{
328
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"min-fresh"
);
329
stringBuilder
.Append(
'='
);
330
int
num4
= (int)
_minFresh
.GetValueOrDefault().
TotalSeconds
;
331
if
(
num4
>= 0)
332
{
333
stringBuilder
.Append(
num4
);
334
}
335
else
336
{
337
StringBuilder
stringBuilder2
=
stringBuilder
;
338
StringBuilder
stringBuilder6
=
stringBuilder2
;
339
IFormatProvider
invariantInfo
=
NumberFormatInfo
.
InvariantInfo
;
340
IFormatProvider
provider4
=
invariantInfo
;
341
StringBuilder.AppendInterpolatedStringHandler
handler4
=
new
StringBuilder
.
AppendInterpolatedStringHandler
(0, 1,
stringBuilder2
,
invariantInfo
);
342
handler4
.AppendFormatted(
num4
);
343
stringBuilder6
.Append(
provider4
,
ref
handler4
);
344
}
345
}
346
if
(
_privateField
)
347
{
348
AppendValueWithSeparatorIfRequired
(
stringBuilder
,
"private"
);
349
if
(
_privateHeaders
!=
null
&&
_privateHeaders
.
Count
> 0)
350
{
351
stringBuilder
.Append(
"=\""
);
352
AppendValues
(
stringBuilder
,
_privateHeaders
);
353
stringBuilder
.Append(
'"'
);
354
}
355
}
356
NameValueHeaderValue
.
ToString
(
_extensions
,
','
,
leadingSeparator
:
false
,
stringBuilder
);
357
return
System
.
Text
.
StringBuilderCache
.
GetStringAndRelease
(
stringBuilder
);
358
}
359
360
public
override
bool
Equals
([
NotNullWhen
(
true
)]
object
?
obj
)
361
{
362
if
(!(
obj
is
CacheControlHeaderValue
cacheControlHeaderValue
))
363
{
364
return
false
;
365
}
366
if
(
_noCache
==
cacheControlHeaderValue
._noCache &&
_noStore
==
cacheControlHeaderValue
._noStore && !(
_maxAge
!=
cacheControlHeaderValue
._maxAge))
367
{
368
TimeSpan
?
sharedMaxAge
=
_sharedMaxAge
;
369
TimeSpan
?
sharedMaxAge2
=
cacheControlHeaderValue
._sharedMaxAge;
370
if
(
sharedMaxAge
.HasValue ==
sharedMaxAge2
.HasValue && (!
sharedMaxAge
.HasValue || !(
sharedMaxAge
.GetValueOrDefault() !=
sharedMaxAge2
.GetValueOrDefault())) &&
_maxStale
==
cacheControlHeaderValue
._maxStale && !(
_maxStaleLimit
!=
cacheControlHeaderValue
._maxStaleLimit))
371
{
372
sharedMaxAge
=
_minFresh
;
373
sharedMaxAge2
=
cacheControlHeaderValue
._minFresh;
374
if
(
sharedMaxAge
.HasValue ==
sharedMaxAge2
.HasValue && (!
sharedMaxAge
.HasValue || !(
sharedMaxAge
.GetValueOrDefault() !=
sharedMaxAge2
.GetValueOrDefault())) &&
_noTransform
==
cacheControlHeaderValue
._noTransform &&
_onlyIfCached
==
cacheControlHeaderValue
._onlyIfCached &&
_publicField
==
cacheControlHeaderValue
._publicField &&
_privateField
==
cacheControlHeaderValue
._privateField &&
_mustRevalidate
==
cacheControlHeaderValue
._mustRevalidate &&
_proxyRevalidate
==
cacheControlHeaderValue
._proxyRevalidate)
375
{
376
if
(!
HeaderUtilities
.AreEqualCollections(
_noCacheHeaders
,
cacheControlHeaderValue
._noCacheHeaders,
StringComparer
.
OrdinalIgnoreCase
))
377
{
378
return
false
;
379
}
380
if
(!
HeaderUtilities
.AreEqualCollections(
_privateHeaders
,
cacheControlHeaderValue
._privateHeaders,
StringComparer
.
OrdinalIgnoreCase
))
381
{
382
return
false
;
383
}
384
if
(!
HeaderUtilities
.AreEqualCollections(
_extensions
,
cacheControlHeaderValue
._extensions))
385
{
386
return
false
;
387
}
388
return
true
;
389
}
390
}
391
}
392
return
false
;
393
}
394
395
public
override
int
GetHashCode
()
396
{
397
int
num =
_noCache
.GetHashCode() ^ (
_noStore
.GetHashCode() << 1) ^ (
_maxStale
.GetHashCode() << 2) ^ (
_noTransform
.GetHashCode() << 3) ^ (
_onlyIfCached
.GetHashCode() << 4) ^ (
_publicField
.GetHashCode() << 5) ^ (
_privateField
.GetHashCode() << 6) ^ (
_mustRevalidate
.GetHashCode() << 7) ^ (
_proxyRevalidate
.GetHashCode() << 8);
398
num = num ^ (_maxAge.HasValue ? (
_maxAge
.Value.
GetHashCode
() ^ 1) : 0) ^ (
_sharedMaxAge
.HasValue ? (
_sharedMaxAge
.Value.
GetHashCode
() ^ 2) : 0) ^ (
_maxStaleLimit
.HasValue ? (
_maxStaleLimit
.Value.
GetHashCode
() ^ 4) : 0) ^ (
_minFresh
.HasValue ? (
_minFresh
.Value.
GetHashCode
() ^ 8) : 0);
399
if
(
_noCacheHeaders
!=
null
&&
_noCacheHeaders
.
Count
> 0)
400
{
401
foreach
(
string
noCacheHeader
in
_noCacheHeaders
)
402
{
403
num ^=
StringComparer
.
OrdinalIgnoreCase
.GetHashCode(
noCacheHeader
);
404
}
405
}
406
if
(
_privateHeaders
!=
null
&&
_privateHeaders
.
Count
> 0)
407
{
408
foreach
(
string
privateHeader
in
_privateHeaders
)
409
{
410
num ^=
StringComparer
.
OrdinalIgnoreCase
.GetHashCode(
privateHeader
);
411
}
412
}
413
if
(
_extensions
!=
null
&&
_extensions
.
Count
> 0)
414
{
415
foreach
(
NameValueHeaderValue
extension
in
_extensions
)
416
{
417
num ^=
extension
.GetHashCode();
418
}
419
}
420
return
num;
421
}
422
423
public
static
CacheControlHeaderValue
Parse
(
string
?
input
)
424
{
425
int
index
= 0;
426
return
(
CacheControlHeaderValue
)
CacheControlHeaderParser
.
Parser
.ParseValue(
input
,
null
,
ref
index
);
427
}
428
429
public
static
bool
TryParse
(
string
?
input
,
out
CacheControlHeaderValue
?
parsedValue
)
430
{
431
int
index
= 0;
432
parsedValue
=
null
;
433
if
(
CacheControlHeaderParser
.
Parser
.TryParseValue(
input
,
null
,
ref
index
,
out
var
parsedValue2
))
434
{
435
parsedValue
= (
CacheControlHeaderValue
)
parsedValue2
;
436
return
true
;
437
}
438
return
false
;
439
}
440
441
internal
static
int
GetCacheControlLength
(
string
input
,
int
startIndex
,
CacheControlHeaderValue
storeValue
,
out
CacheControlHeaderValue
parsedValue
)
442
{
443
parsedValue
=
null
;
444
if
(
string
.IsNullOrEmpty(
input
) ||
startIndex
>=
input
.Length)
445
{
446
return
0;
447
}
448
int
index
=
startIndex
;
449
List<NameValueHeaderValue>
list
=
new
List<NameValueHeaderValue>
();
450
while
(
index
<
input
.Length)
451
{
452
if
(!
s_nameValueListParser
.TryParseValue(
input
,
null
,
ref
index
,
out
var
parsedValue2
))
453
{
454
return
0;
455
}
456
list
.Add((
NameValueHeaderValue
)
parsedValue2
);
457
}
458
CacheControlHeaderValue
cacheControlHeaderValue
=
storeValue
;
459
if
(
cacheControlHeaderValue
==
null
)
460
{
461
cacheControlHeaderValue
=
new
CacheControlHeaderValue
();
462
}
463
if
(!
TrySetCacheControlValues
(
cacheControlHeaderValue
,
list
))
464
{
465
return
0;
466
}
467
if
(
storeValue
==
null
)
468
{
469
parsedValue
=
cacheControlHeaderValue
;
470
}
471
return
input.Length -
startIndex
;
472
}
473
474
private
static
bool
TrySetCacheControlValues
(
CacheControlHeaderValue
cc
,
List<NameValueHeaderValue>
nameValueList
)
475
{
476
foreach
(
NameValueHeaderValue
nameValue
in
nameValueList
)
477
{
478
bool
flag =
true
;
479
switch
(
nameValue
.Name.ToLowerInvariant())
480
{
481
case
"no-cache"
:
482
flag =
TrySetOptionalTokenList
(
nameValue
,
ref
cc
._noCache,
ref
cc
._noCacheHeaders);
483
break
;
484
case
"no-store"
:
485
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._noStore);
486
break
;
487
case
"max-age"
:
488
flag =
TrySetTimeSpan
(
nameValue
,
ref
cc
._maxAge);
489
break
;
490
case
"max-stale"
:
491
flag = nameValue.Value ==
null
||
TrySetTimeSpan
(
nameValue
,
ref
cc
._maxStaleLimit);
492
if
(flag)
493
{
494
cc._maxStale =
true
;
495
}
496
break
;
497
case
"min-fresh"
:
498
flag =
TrySetTimeSpan
(
nameValue
,
ref
cc
._minFresh);
499
break
;
500
case
"no-transform"
:
501
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._noTransform);
502
break
;
503
case
"only-if-cached"
:
504
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._onlyIfCached);
505
break
;
506
case
"public"
:
507
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._publicField);
508
break
;
509
case
"private"
:
510
flag =
TrySetOptionalTokenList
(
nameValue
,
ref
cc
._privateField,
ref
cc
._privateHeaders);
511
break
;
512
case
"must-revalidate"
:
513
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._mustRevalidate);
514
break
;
515
case
"proxy-revalidate"
:
516
flag =
TrySetTokenOnlyValue
(
nameValue
,
ref
cc
._proxyRevalidate);
517
break
;
518
case
"s-maxage"
:
519
flag =
TrySetTimeSpan
(
nameValue
,
ref
cc
._sharedMaxAge);
520
break
;
521
default
:
522
cc
.Extensions.
Add
(
nameValue
);
523
break
;
524
}
525
if
(!flag)
526
{
527
return
false
;
528
}
529
}
530
return
true
;
531
}
532
533
private
static
bool
TrySetTokenOnlyValue
(
NameValueHeaderValue
nameValue
,
ref
bool
boolField
)
534
{
535
if
(
nameValue
.Value !=
null
)
536
{
537
return
false
;
538
}
539
boolField
=
true
;
540
return
true
;
541
}
542
543
private
static
bool
TrySetOptionalTokenList
(
NameValueHeaderValue
nameValue
,
ref
bool
boolField
,
ref
ObjectCollection<string>
destination
)
544
{
545
if
(
nameValue
.Value ==
null
)
546
{
547
boolField
=
true
;
548
return
true
;
549
}
550
string
value
=
nameValue
.Value;
551
if
(
value
.Length < 3 ||
value
[0] !=
'"'
||
value
[
value
.Length - 1] !=
'"'
)
552
{
553
return
false
;
554
}
555
int
num = 1;
556
int
num2
= value.Length - 1;
557
bool
separatorFound
=
false
;
558
int
num3
= ((
destination
!=
null
) ?
destination
.Count : 0);
559
while
(num <
num2
)
560
{
561
num =
HeaderUtilities
.
GetNextNonEmptyOrWhitespaceIndex
(
value
, num,
skipEmptyValues
:
true
,
out
separatorFound
);
562
if
(num ==
num2
)
563
{
564
break
;
565
}
566
int
tokenLength
=
HttpRuleParser
.
GetTokenLength
(
value
, num);
567
if
(
tokenLength
== 0)
568
{
569
return
false
;
570
}
571
if
(
destination
==
null
)
572
{
573
destination
=
new
ObjectCollection<string>
(
s_checkIsValidToken
);
574
}
575
destination
.Add(
value
.Substring(num,
tokenLength
));
576
num +=
tokenLength
;
577
}
578
if
(
destination
!=
null
&&
destination
.Count >
num3
)
579
{
580
boolField
=
true
;
581
return
true
;
582
}
583
return
false
;
584
}
585
586
private
static
bool
TrySetTimeSpan
(
NameValueHeaderValue
nameValue
,
ref
TimeSpan
?
timeSpan
)
587
{
588
if
(
nameValue
.Value ==
null
)
589
{
590
return
false
;
591
}
592
if
(!
HeaderUtilities
.
TryParseInt32
(
nameValue
.Value,
out
var
result))
593
{
594
return
false
;
595
}
596
timeSpan
=
new
TimeSpan
(0, 0, result);
597
return
true
;
598
}
599
600
private
static
void
AppendValueIfRequired
(
StringBuilder
sb,
bool
appendValue
,
string
value
)
601
{
602
if
(
appendValue
)
603
{
604
AppendValueWithSeparatorIfRequired
(sb,
value
);
605
}
606
}
607
608
private
static
void
AppendValueWithSeparatorIfRequired
(
StringBuilder
sb,
string
value
)
609
{
610
if
(sb.
Length
> 0)
611
{
612
sb.
Append
(
", "
);
613
}
614
sb.
Append
(
value
);
615
}
616
617
private
static
void
AppendValues
(
StringBuilder
sb,
ObjectCollection<string>
values
)
618
{
619
bool
flag =
true
;
620
foreach
(
string
value
in
values
)
621
{
622
if
(flag)
623
{
624
flag =
false
;
625
}
626
else
627
{
628
sb.Append(
", "
);
629
}
630
sb.Append(
value
);
631
}
632
}
633
634
private
static
void
CheckIsValidToken
(
string
item
)
635
{
636
HeaderUtilities
.
CheckValidToken
(
item
,
"item"
);
637
}
638
639
object
ICloneable
.
Clone
()
640
{
641
return
new
CacheControlHeaderValue
(
this
);
642
}
643
}
System.Collections.Generic.Dictionary.Count
int Count
Definition
Dictionary.cs:682
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Globalization.NumberFormatInfo.InvariantInfo
static NumberFormatInfo InvariantInfo
Definition
NumberFormatInfo.cs:72
System.Globalization.NumberFormatInfo
Definition
NumberFormatInfo.cs:4
System.Net.Http.Headers.CacheControlHeaderParser.Parser
static readonly CacheControlHeaderParser Parser
Definition
CacheControlHeaderParser.cs:5
System.Net.Http.Headers.CacheControlHeaderParser
Definition
CacheControlHeaderParser.cs:4
System.Net.Http.Headers.CacheControlHeaderValue.NoStore
bool NoStore
Definition
CacheControlHeaderValue.cs:61
System.Net.Http.Headers.CacheControlHeaderValue.MaxAge
TimeSpan? MaxAge
Definition
CacheControlHeaderValue.cs:73
System.Net.Http.Headers.CacheControlHeaderValue.AppendValueIfRequired
static void AppendValueIfRequired(StringBuilder sb, bool appendValue, string value)
Definition
CacheControlHeaderValue.cs:600
System.Net.Http.Headers.CacheControlHeaderValue._proxyRevalidate
bool _proxyRevalidate
Definition
CacheControlHeaderValue.cs:42
System.Net.Http.Headers.CacheControlHeaderValue.ProxyRevalidate
bool ProxyRevalidate
Definition
CacheControlHeaderValue.cs:195
System.Net.Http.Headers.CacheControlHeaderValue.PrivateHeaders
ICollection< string > PrivateHeaders
Definition
CacheControlHeaderValue.cs:180
System.Net.Http.Headers.CacheControlHeaderValue.Private
bool Private
Definition
CacheControlHeaderValue.cs:169
System.Net.Http.Headers.CacheControlHeaderValue.Parse
static CacheControlHeaderValue Parse(string? input)
Definition
CacheControlHeaderValue.cs:423
System.Net.Http.Headers.CacheControlHeaderValue.MustRevalidate
bool MustRevalidate
Definition
CacheControlHeaderValue.cs:183
System.Net.Http.Headers.CacheControlHeaderValue.NoTransform
bool NoTransform
Definition
CacheControlHeaderValue.cs:133
System.Net.Http.Headers.CacheControlHeaderValue._maxAge
TimeSpan? _maxAge
Definition
CacheControlHeaderValue.cs:20
System.Net.Http.Headers.CacheControlHeaderValue.AppendValues
static void AppendValues(StringBuilder sb, ObjectCollection< string > values)
Definition
CacheControlHeaderValue.cs:617
System.Net.Http.Headers.CacheControlHeaderValue._extensions
ObjectCollection< NameValueHeaderValue > _extensions
Definition
CacheControlHeaderValue.cs:44
System.Net.Http.Headers.CacheControlHeaderValue._noStore
bool _noStore
Definition
CacheControlHeaderValue.cs:18
System.Net.Http.Headers.CacheControlHeaderValue._noCache
bool _noCache
Definition
CacheControlHeaderValue.cs:14
System.Net.Http.Headers.CacheControlHeaderValue._mustRevalidate
bool _mustRevalidate
Definition
CacheControlHeaderValue.cs:40
System.Net.Http.Headers.CacheControlHeaderValue.ToString
override string ToString()
Definition
CacheControlHeaderValue.cs:244
System.Net.Http.Headers.CacheControlHeaderValue.Public
bool Public
Definition
CacheControlHeaderValue.cs:157
System.Net.Http.Headers.CacheControlHeaderValue.MaxStale
bool MaxStale
Definition
CacheControlHeaderValue.cs:97
System.Net.Http.Headers.CacheControlHeaderValue.TrySetOptionalTokenList
static bool TrySetOptionalTokenList(NameValueHeaderValue nameValue, ref bool boolField, ref ObjectCollection< string > destination)
Definition
CacheControlHeaderValue.cs:543
System.Net.Http.Headers.CacheControlHeaderValue._noCacheHeaders
ObjectCollection< string > _noCacheHeaders
Definition
CacheControlHeaderValue.cs:16
System.Net.Http.Headers.CacheControlHeaderValue._minFresh
TimeSpan? _minFresh
Definition
CacheControlHeaderValue.cs:28
System.Net.Http.Headers.CacheControlHeaderValue.TrySetTimeSpan
static bool TrySetTimeSpan(NameValueHeaderValue nameValue, ref TimeSpan? timeSpan)
Definition
CacheControlHeaderValue.cs:586
System.Net.Http.Headers.CacheControlHeaderValue._maxStale
bool _maxStale
Definition
CacheControlHeaderValue.cs:24
System.Net.Http.Headers.CacheControlHeaderValue.CacheControlHeaderValue
CacheControlHeaderValue(CacheControlHeaderValue source)
Definition
CacheControlHeaderValue.cs:212
System.Net.Http.Headers.CacheControlHeaderValue.s_checkIsValidToken
static readonly Action< string > s_checkIsValidToken
Definition
CacheControlHeaderValue.cs:12
System.Net.Http.Headers.CacheControlHeaderValue.NoCacheHeaders
ICollection< string > NoCacheHeaders
Definition
CacheControlHeaderValue.cs:58
System.Net.Http.Headers.CacheControlHeaderValue.OnlyIfCached
bool OnlyIfCached
Definition
CacheControlHeaderValue.cs:145
System.Net.Http.Headers.CacheControlHeaderValue._privateHeaders
ObjectCollection< string > _privateHeaders
Definition
CacheControlHeaderValue.cs:38
System.Net.Http.Headers.CacheControlHeaderValue.GetCacheControlLength
static int GetCacheControlLength(string input, int startIndex, CacheControlHeaderValue storeValue, out CacheControlHeaderValue parsedValue)
Definition
CacheControlHeaderValue.cs:441
System.Net.Http.Headers.CacheControlHeaderValue.SharedMaxAge
TimeSpan? SharedMaxAge
Definition
CacheControlHeaderValue.cs:85
System.Net.Http.Headers.CacheControlHeaderValue._noTransform
bool _noTransform
Definition
CacheControlHeaderValue.cs:30
System.Net.Http.Headers.CacheControlHeaderValue._sharedMaxAge
TimeSpan? _sharedMaxAge
Definition
CacheControlHeaderValue.cs:22
System.Net.Http.Headers.CacheControlHeaderValue.CacheControlHeaderValue
CacheControlHeaderValue()
Definition
CacheControlHeaderValue.cs:208
System.Net.Http.Headers.CacheControlHeaderValue.MaxStaleLimit
TimeSpan? MaxStaleLimit
Definition
CacheControlHeaderValue.cs:109
System.Net.Http.Headers.CacheControlHeaderValue._publicField
bool _publicField
Definition
CacheControlHeaderValue.cs:34
System.Net.Http.Headers.CacheControlHeaderValue.GetHashCode
override int GetHashCode()
Definition
CacheControlHeaderValue.cs:395
System.Net.Http.Headers.CacheControlHeaderValue.CheckIsValidToken
static void CheckIsValidToken(string item)
Definition
CacheControlHeaderValue.cs:634
System.Net.Http.Headers.CacheControlHeaderValue.Equals
override bool Equals([NotNullWhen(true)] object? obj)
Definition
CacheControlHeaderValue.cs:360
System.Net.Http.Headers.CacheControlHeaderValue.TryParse
static bool TryParse(string? input, out CacheControlHeaderValue? parsedValue)
Definition
CacheControlHeaderValue.cs:429
System.Net.Http.Headers.CacheControlHeaderValue._onlyIfCached
bool _onlyIfCached
Definition
CacheControlHeaderValue.cs:32
System.Net.Http.Headers.CacheControlHeaderValue.AppendValueWithSeparatorIfRequired
static void AppendValueWithSeparatorIfRequired(StringBuilder sb, string value)
Definition
CacheControlHeaderValue.cs:608
System.Net.Http.Headers.CacheControlHeaderValue.TrySetCacheControlValues
static bool TrySetCacheControlValues(CacheControlHeaderValue cc, List< NameValueHeaderValue > nameValueList)
Definition
CacheControlHeaderValue.cs:474
System.Net.Http.Headers.CacheControlHeaderValue._maxStaleLimit
TimeSpan? _maxStaleLimit
Definition
CacheControlHeaderValue.cs:26
System.Net.Http.Headers.CacheControlHeaderValue.MinFresh
TimeSpan? MinFresh
Definition
CacheControlHeaderValue.cs:121
System.Net.Http.Headers.CacheControlHeaderValue.s_nameValueListParser
static readonly HttpHeaderParser s_nameValueListParser
Definition
CacheControlHeaderValue.cs:10
System.Net.Http.Headers.CacheControlHeaderValue._privateField
bool _privateField
Definition
CacheControlHeaderValue.cs:36
System.Net.Http.Headers.CacheControlHeaderValue.NoCache
bool NoCache
Definition
CacheControlHeaderValue.cs:47
System.Net.Http.Headers.CacheControlHeaderValue.TrySetTokenOnlyValue
static bool TrySetTokenOnlyValue(NameValueHeaderValue nameValue, ref bool boolField)
Definition
CacheControlHeaderValue.cs:533
System.Net.Http.Headers.CacheControlHeaderValue
Definition
CacheControlHeaderValue.cs:9
System.Net.Http.Headers.GenericHeaderParser.MultipleValueNameValueParser
static readonly GenericHeaderParser MultipleValueNameValueParser
Definition
GenericHeaderParser.cs:19
System.Net.Http.Headers.GenericHeaderParser
Definition
GenericHeaderParser.cs:6
System.Net.Http.Headers.HeaderUtilities.TryParseInt32
static bool TryParseInt32(string value, out int result)
Definition
HeaderUtilities.cs:240
System.Net.Http.Headers.HeaderUtilities.CheckValidToken
static void CheckValidToken(string value, string parameterName)
Definition
HeaderUtilities.cs:105
System.Net.Http.Headers.HeaderUtilities.GetNextNonEmptyOrWhitespaceIndex
static int GetNextNonEmptyOrWhitespaceIndex(string input, int startIndex, bool skipEmptyValues, out bool separatorFound)
Definition
HeaderUtilities.cs:194
System.Net.Http.Headers.HeaderUtilities
Definition
HeaderUtilities.cs:9
System.Net.Http.Headers.HttpHeaderParser
Definition
HttpHeaderParser.cs:8
System.Net.Http.Headers.NameValueHeaderValue.ToString
override string ToString()
Definition
NameValueHeaderValue.cs:105
System.Net.Http.Headers.NameValueHeaderValue
Definition
NameValueHeaderValue.cs:8
System.Net.Http.Headers.ObjectCollection.Count
int Count
Definition
ObjectCollection.cs:82
System.Net.Http.HttpRuleParser.GetTokenLength
static int GetTokenLength(string input, int startIndex)
Definition
HttpRuleParser.cs:47
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.Length
int Length
Definition
StringBuilder.cs:360
System.Text.StringBuilder.Append
StringBuilder Append(char value, int repeatCount)
Definition
StringBuilder.cs:744
System.Text.StringBuilder
Definition
StringBuilder.cs:14
System.Collections.Generic.ICollection.Add
void Add(T item)
System.ICloneable.Clone
object Clone()
System.ICloneable
Definition
ICloneable.cs:4
System.IFormatProvider
Definition
IFormatProvider.cs:4
Extensions
Definition
EnumerationExtensions.cs:3
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Globalization
Definition
Calendar.cs:1
System.Net.Http.Headers
Definition
AltSvcHeaderParser.cs:4
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.startIndex
@ startIndex
System.ExceptionArgument.list
@ list
System.ExceptionArgument.value
@ value
System.ExceptionArgument.source
@ source
System.ExceptionArgument.item
@ item
System.ExceptionArgument.destination
@ destination
System.ExceptionArgument.index
@ index
System.ExceptionArgument.input
@ input
System.ExceptionArgument.obj
@ obj
System.ExceptionArgument.values
@ values
System
Definition
BlockingCollection.cs:8
System.Text.StringBuilder.AppendInterpolatedStringHandler.AppendFormatted
void AppendFormatted(ReadOnlySpan< char > value)
Definition
StringBuilder.cs:249
System.Text.StringBuilder.AppendInterpolatedStringHandler
Definition
StringBuilder.cs:116
System.TimeSpan.TotalSeconds
double TotalSeconds
Definition
TimeSpan.cs:64
System.TimeSpan.GetHashCode
override int GetHashCode()
Definition
TimeSpan.cs:195
System.TimeSpan
Definition
TimeSpan.cs:10
source
System.Net.Http
System.Net.Http.Headers
CacheControlHeaderValue.cs
Generated by
1.10.0