Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ProcessIncomingFramesAsync()

async Task System.Net.Http.Http2Connection.ProcessIncomingFramesAsync ( )
inlineprivate

Definition at line 2054 of file Http2Connection.cs.

2055 {
2056 _ = 3;
2057 try
2058 {
2059 try
2060 {
2062 if (frameHeader.Type != FrameType.Settings || frameHeader.AckFlag)
2063 {
2065 }
2066 if (System.Net.NetEventSource.Log.IsEnabled())
2067 {
2068 Trace($"Frame 0: {frameHeader}.", "ProcessIncomingFramesAsync");
2069 }
2071 }
2073 {
2075 }
2076 long frameNum = 1L;
2077 while (true)
2078 {
2079 if (_incomingBuffer.ActiveLength < 9)
2080 {
2081 _incomingBuffer.EnsureAvailableSpace(9 - _incomingBuffer.ActiveLength);
2082 int num;
2083 do
2084 {
2086 _incomingBuffer.Commit(num);
2087 }
2088 while (num != 0 && _incomingBuffer.ActiveLength < 9);
2089 }
2090 FrameHeader frameHeader = await ReadFrameAsync().ConfigureAwait(continueOnCapturedContext: false);
2091 if (System.Net.NetEventSource.Log.IsEnabled())
2092 {
2093 Trace($"Frame {frameNum}: {frameHeader}.", "ProcessIncomingFramesAsync");
2094 }
2096 switch (frameHeader.Type)
2097 {
2098 case FrameType.Headers:
2100 break;
2101 case FrameType.Data:
2103 break;
2104 case FrameType.Settings:
2106 break;
2107 case FrameType.Priority:
2109 break;
2110 case FrameType.Ping:
2112 break;
2113 case FrameType.WindowUpdate:
2115 break;
2116 case FrameType.RstStream:
2118 break;
2119 case FrameType.GoAway:
2121 break;
2122 case FrameType.AltSvc:
2124 break;
2125 default:
2127 break;
2128 }
2129 frameNum++;
2130 }
2131 }
2132 catch (Exception ex)
2133 {
2134 if (System.Net.NetEventSource.Log.IsEnabled())
2135 {
2136 Trace("ProcessIncomingFramesAsync: " + ex.Message, "ProcessIncomingFramesAsync");
2137 }
2138 Abort(ex);
2139 }
2140 }
Task< int > ReadAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:762
void ProcessPingFrame(FrameHeader frameHeader)
void ProcessRstStreamFrame(FrameHeader frameHeader)
void ProcessSettingsFrame(FrameHeader frameHeader, bool initialFrame=false)
System.Net.ArrayBuffer _incomingBuffer
void ProcessPriorityFrame(FrameHeader frameHeader)
override void Trace(string message, [CallerMemberName] string memberName=null)
void ProcessAltSvcFrame(FrameHeader frameHeader)
void ProcessGoAwayFrame(FrameHeader frameHeader)
async ValueTask ProcessHeadersFrame(FrameHeader frameHeader)
void ProcessDataFrame(FrameHeader frameHeader)
async ValueTask< FrameHeader > ReadFrameAsync(bool initialFrame=false)
void ProcessWindowUpdateFrame(FrameHeader frameHeader)
static readonly System.Net.NetEventSource Log
static string net_http_http2_connection_not_established
Definition SR.cs:150
Definition SR.cs:7
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226

References System.Net.Http.Http2Connection._incomingBuffer, System.Net.Http.Http2Connection._stream, System.Net.Abort, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.L, System.Net.NetEventSource.Log, System.SR.net_http_http2_connection_not_established, System.Net.Http.Http2Connection.ProcessAltSvcFrame(), System.Net.Http.Http2Connection.ProcessDataFrame(), System.Net.Http.Http2Connection.ProcessGoAwayFrame(), System.Net.Http.Http2Connection.ProcessHeadersFrame(), System.Net.Http.Http2Connection.ProcessPingFrame(), System.Net.Http.Http2Connection.ProcessPriorityFrame(), System.Net.Http.Http2Connection.ProcessRstStreamFrame(), System.Net.Http.Http2Connection.ProcessSettingsFrame(), System.Net.Http.Http2Connection.ProcessWindowUpdateFrame(), System.IO.Stream.ReadAsync(), System.Net.Http.Http2Connection.ReadFrameAsync(), System.Net.Http.Http2Connection.RefreshPingTimestamp(), System.Net.Http.Http2Connection.ThrowProtocolError(), and System.Net.Http.Http2Connection.Trace().

Referenced by System.Net.Http.Http2Connection.SetupAsync().