1 instantiation of FrameHeader
System.Net.Http (1)
System\Net\Http\SocketsHttpHandler\Http2Connection.cs (1)
2020return new FrameHeader(payloadLength, type, flags, streamId);
76 references to FrameHeader
System.Net.Http (76)
System\Net\Http\SocketsHttpHandler\Http2Connection.cs (76)
88private const int InitialConnectionBufferSize = FrameHeader.Size; 205FrameHeader.Size + (2 * FrameHeader.SettingLength) + 206FrameHeader.Size + FrameHeader.WindowUpdateLength; 215FrameHeader.WriteTo(_outgoingBuffer.AvailableSpan, 2 * FrameHeader.SettingLength, FrameType.Settings, FrameFlags.None, streamId: 0); 216_outgoingBuffer.Commit(FrameHeader.Size); 231FrameHeader.WriteTo(_outgoingBuffer.AvailableSpan, FrameHeader.WindowUpdateLength, FrameType.WindowUpdate, FrameFlags.None, streamId: 0); 232_outgoingBuffer.Commit(FrameHeader.Size); 416private async ValueTask<FrameHeader> ReadFrameAsync(bool initialFrame = false) 421if (_incomingBuffer.ActiveLength < FrameHeader.Size) 428_incomingBuffer.EnsureAvailableSpace(FrameHeader.Size); 444ThrowPrematureEOF(FrameHeader.Size); 448while (_incomingBuffer.ActiveLength < FrameHeader.Size); 452FrameHeader frameHeader = FrameHeader.ReadFrom(_incomingBuffer.ActiveSpan); 453if (frameHeader.PayloadLength > FrameHeader.MaxPayloadLength) 461_incomingBuffer.Discard(FrameHeader.Size); 464_incomingBuffer.Discard(FrameHeader.Size); 496FrameHeader frameHeader; 542if (_incomingBuffer.ActiveLength < FrameHeader.Size) 568while (_incomingBuffer.ActiveLength < FrameHeader.Size); 658private async ValueTask ProcessHeadersFrame(FrameHeader frameHeader) 743if (frameData.Length < FrameHeader.PriorityInfoLength) 749frameData = frameData.Slice(FrameHeader.PriorityInfoLength); 761private void ProcessAltSvcFrame(FrameHeader frameHeader) 791private void ProcessDataFrame(FrameHeader frameHeader) 820private void ProcessSettingsFrame(FrameHeader frameHeader, bool initialFrame = false) 984private void ProcessPriorityFrame(FrameHeader frameHeader) 988if (frameHeader.StreamId == 0 || frameHeader.PayloadLength != FrameHeader.PriorityInfoLength) 998private void ProcessPingFrame(FrameHeader frameHeader) 1007if (frameHeader.PayloadLength != FrameHeader.PingLength) 1015Debug.Assert(sizeof(long) == FrameHeader.PingLength); 1016ReadOnlySpan<byte> pingContent = _incomingBuffer.ActiveSpan.Slice(0, FrameHeader.PingLength); 1032private void ProcessWindowUpdateFrame(FrameHeader frameHeader) 1036if (frameHeader.PayloadLength != FrameHeader.WindowUpdateLength) 1069private void ProcessRstStreamFrame(FrameHeader frameHeader) 1073if (frameHeader.PayloadLength != FrameHeader.RstStreamLength) 1100private void ProcessGoAwayFrame(FrameHeader frameHeader) 1135private (int lastStreamId, Http2ProtocolErrorCode errorCode) ReadGoAwayFrame(FrameHeader frameHeader) 1139if (frameHeader.PayloadLength < FrameHeader.GoAwayMinLength) 1315LogExceptions(PerformWriteAsync(FrameHeader.Size, this, static (thisRef, writeBuffer) => 1319FrameHeader.WriteTo(writeBuffer.Span, 0, FrameType.Settings, FrameFlags.Ack, streamId: 0); 1336LogExceptions(PerformWriteAsync(FrameHeader.Size + FrameHeader.PingLength, (thisRef: this, pingContent, isAck), static (state, writeBuffer) => 1340Debug.Assert(sizeof(long) == FrameHeader.PingLength); 1343FrameHeader.WriteTo(span, FrameHeader.PingLength, FrameType.Ping, state.isAck ? FrameFlags.Ack : FrameFlags.None, streamId: 0); 1344BinaryPrimitives.WriteInt64BigEndian(span.Slice(FrameHeader.Size), state.pingContent); 1353PerformWriteAsync(FrameHeader.Size + FrameHeader.RstStreamLength, (thisRef: this, streamId, errorCode), static (s, writeBuffer) => 1358FrameHeader.WriteTo(span, FrameHeader.RstStreamLength, FrameType.RstStream, FrameFlags.None, s.streamId); 1359BinaryPrimitives.WriteInt32BigEndian(span.Slice(FrameHeader.Size), (int)s.errorCode); 1706int frameCount = ((headerBytes.Length - 1) / FrameHeader.MaxPayloadLength) + 1; 1707int totalSize = headerBytes.Length + (frameCount * FrameHeader.Size); 1727(current, remaining) = SplitBuffer(s.headerBytes, FrameHeader.MaxPayloadLength); 1730FrameHeader.WriteTo(span, current.Length, FrameType.Headers, flags, s.http2Stream.StreamId); 1731span = span.Slice(FrameHeader.Size); 1739(current, remaining) = SplitBuffer(remaining, FrameHeader.MaxPayloadLength); 1742FrameHeader.WriteTo(span, current.Length, FrameType.Continuation, flags, s.http2Stream.StreamId); 1743span = span.Slice(FrameHeader.Size); 1776int frameSize = Math.Min(remaining.Length, FrameHeader.MaxPayloadLength); 1796await PerformWriteAsync(FrameHeader.Size + current.Length, (thisRef: this, streamId, current, flush), static (s, writeBuffer) => 1801FrameHeader.WriteTo(writeBuffer.Span, s.current.Length, FrameType.Data, FrameFlags.None, s.streamId); 1802s.current.CopyTo(writeBuffer.Slice(FrameHeader.Size)); 1817PerformWriteAsync(FrameHeader.Size, (thisRef: this, streamId), static (s, writeBuffer) => 1821FrameHeader.WriteTo(writeBuffer.Span, 0, FrameType.Data, FrameFlags.EndStream, s.streamId); 1830return PerformWriteAsync(FrameHeader.Size + FrameHeader.WindowUpdateLength, (thisRef: this, streamId, amount), static (s, writeBuffer) => 1835FrameHeader.WriteTo(span, FrameHeader.WindowUpdateLength, FrameType.WindowUpdate, FrameFlags.None, s.streamId); 1836BinaryPrimitives.WriteInt32BigEndian(span.Slice(FrameHeader.Size), s.amount); 2011public static FrameHeader ReadFrom(ReadOnlySpan<byte> buffer)