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