Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AltSvcHeaderValue.cs
Go to the documentation of this file.
2using System.Text;
3
5
6internal sealed class AltSvcHeaderValue
7{
8 public static AltSvcHeaderValue Clear { get; } = new AltSvcHeaderValue("clear", null, 0, TimeSpan.Zero, persist: false);
9
10
11 public string AlpnProtocolName { get; }
12
13 public string Host { get; }
14
15 public int Port { get; }
16
17 public TimeSpan MaxAge { get; }
18
19 public bool Persist { get; }
20
21 public AltSvcHeaderValue(string alpnProtocolName, string host, int port, TimeSpan maxAge, bool persist)
22 {
23 AlpnProtocolName = alpnProtocolName;
24 Host = host;
25 Port = port;
26 MaxAge = maxAge;
27 Persist = persist;
28 }
29
30 public override string ToString()
31 {
32 StringBuilder stringBuilder = System.Text.StringBuilderCache.Acquire(AlpnProtocolName.Length + (Host?.Length ?? 0) + 64);
33 stringBuilder.Append(AlpnProtocolName);
34 stringBuilder.Append("=\"");
35 if (Host != null)
36 {
37 stringBuilder.Append(Host);
38 }
39 stringBuilder.Append(':');
40 stringBuilder.Append((uint)Port);
41 stringBuilder.Append('"');
42 if (MaxAge != TimeSpan.FromTicks(864000000000L))
43 {
44 StringBuilder stringBuilder2 = stringBuilder;
46 StringBuilder.AppendInterpolatedStringHandler handler = new StringBuilder.AppendInterpolatedStringHandler(5, 1, stringBuilder2, invariantCulture);
47 handler.AppendLiteral("; ma=");
48 handler.AppendFormatted(MaxAge.Ticks / 10000000);
49 stringBuilder2.Append(invariantCulture, ref handler);
50 }
51 if (Persist)
52 {
53 stringBuilder.Append("; persist=1");
54 }
56 }
57}
static CultureInfo InvariantCulture
AltSvcHeaderValue(string alpnProtocolName, string host, int port, TimeSpan maxAge, bool persist)
static string GetStringAndRelease(StringBuilder sb)
static StringBuilder Acquire(int capacity=16)
StringBuilder Append(char value, int repeatCount)
static readonly TimeSpan Zero
Definition TimeSpan.cs:21
static TimeSpan FromTicks(long value)
Definition TimeSpan.cs:277