101 for (
int i = 0; i < readOnlySpan.
Length; i++)
103 byte b = readOnlySpan[i];
113 case State.RequiredInsertCount:
123 case State.RequiredInsertCountContinue:
142 case State.BaseContinue:
148 case State.CompressedHeaders:
154 if ((b & 0x40) != 64)
170 if ((0x10 & b) != 16)
231 case State.HeaderNameLength:
241 case State.HeaderName:
248 case State.HeaderNameIndex:
254 case State.HeaderNameIndexPostBase:
260 case State.HeaderValueLength:
275 case State.HeaderValueLengthContinue:
285 case State.HeaderValue:
292 case State.HeaderFieldIndex:
298 case State.PostBaseIndex:
304 case State.HeaderNameLengthContinue:
305 case State.DynamicTableSizeUpdate:
306 case State.LiteralHeaderFieldWithNameReference:
333 int valueOrDefault =
index.GetValueOrDefault();
363 int Decode(ref
byte[] dst)
405 if (requiredInsertCount != 0)
static void BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count)
static ArrayPool< T > Shared
static int Decode(ReadOnlySpan< byte > src, ref byte[] dstArray)
void Decode(ReadOnlySpan< byte > headerBlock, IHttpHeadersHandler handler)
void OnString(State nextState)
void OnIndexedHeaderName(int index)
void OnPostBaseIndex(int intResult, IHttpHeadersHandler handler)
@ HeaderValueLengthContinue
@ RequiredInsertCountContinue
@ LiteralHeaderFieldWithNameReference
@ HeaderNameIndexPostBase
@ HeaderNameLengthContinue
void OnIndexedHeaderField(int index, IHttpHeadersHandler handler)
void OnByte(byte b, IHttpHeadersHandler handler)
void ProcessHeaderValue(IHttpHeadersHandler handler)
readonly int _maxHeadersLength
void OnIndexedHeaderNamePostBase(int index)
IntegerDecoder _integerDecoder
QPackDecoder(int maxHeadersLength)
static void ThrowDynamicTableNotSupported()
void OnBase(int deltaBase)
void OnRequiredInsertCount(int requiredInsertCount)
static void ReturnAndGetNewPooledArray(ref byte[] buffer, int newSize)
static ArrayPool< byte > Pool
byte[] _headerValueOctets
void OnStringLength(int length, State nextState)
static int LeadingZeroCount(uint value)
static string net_http_invalid_header_name
static string net_http_hpack_huffman_decode_failed
static string Format(string resourceFormat, object p1)
static string net_http_qpack_no_dynamic_table
static string net_http_headers_exceeded_length
void OnStaticIndexedHeader(int index)
void OnHeader(ReadOnlySpan< byte > name, ReadOnlySpan< byte > value)
bool BeginTryDecode(byte b, int prefixLength, out int result)
bool TryDecode(byte b, out int result)