internal Enumerator(HttpResponseHeaders collection) { _collection = collection; _currentBits = collection._bits; _next = _currentBits != 0 ? BitOperations.TrailingZeroCount(_currentBits) : -1; _current = default; _currentKnownType = default; _hasUnknown = collection.MaybeUnknown != null; _unknownEnumerator = _hasUnknown ? collection.MaybeUnknown !.GetEnumerator() : default;
public void Initialize(IDictionary <string, StringValues> headers) { _headersEnumerator = default; _trailersEnumerator = default; _genericEnumerator = headers.GetEnumerator(); _isTrailers = false; _stringValuesEnumerator = default; Current = default; _knownHeaderType = default; }
internal Enumerator(HttpResponseTrailers collection) { _collection = collection; _bits = collection._bits; _next = 0; _current = default; _currentKnownType = default; _hasUnknown = collection.MaybeUnknown != null; _unknownEnumerator = _hasUnknown ? collection.MaybeUnknown !.GetEnumerator() : default;
public void Initialize(HttpResponseTrailers headers) { _headersEnumerator = default; _trailersEnumerator = headers.GetEnumerator(); _genericEnumerator = null; _isTrailers = true; _stringValuesEnumerator = default; Current = default; _knownHeaderType = default; }
private static bool EncodeHeader(KnownHeaderType knownHeaderType, string name, string value, Span <byte> buffer, out int length) { var hPackStaticTableId = GetResponseHeaderStaticTableId(knownHeaderType); if (hPackStaticTableId == -1) { return(HPackEncoder.EncodeLiteralHeaderFieldWithoutIndexingNewName(name, value, buffer, out length)); } else { return(HPackEncoder.EncodeLiteralHeaderFieldWithoutIndexing(hPackStaticTableId, value, buffer, out length)); } }
public void Reset() { if (_headersType == HeadersType.Headers) { _headersEnumerator.Reset(); } else if (_headersType == HeadersType.Trailers) { _trailersEnumerator.Reset(); } else { _genericEnumerator !.Reset(); } _stringValuesEnumerator = default; _knownHeaderType = default; }
private bool SetCurrent(string name, StringValues value, KnownHeaderType knownHeaderType) { _knownHeaderType = knownHeaderType; if (value.Count == 1) { Current = new KeyValuePair <string, string>(name, value.ToString()); _hasMultipleValues = false; return(true); } else { _stringValuesEnumerator = value.GetEnumerator(); _hasMultipleValues = true; return(MoveNextOnStringEnumerator(name)); } }
private bool TryGetNextStringEnumerator(out StringValues.Enumerator enumerator) { if (_genericEnumerator != null) { if (!_genericEnumerator.MoveNext()) { enumerator = default; return(false); } else { enumerator = _genericEnumerator.Current.Value.GetEnumerator(); _knownHeaderType = default; return(true); } } else if (_isTrailers) { if (!_trailersEnumerator.MoveNext()) { enumerator = default; return(false); } else { enumerator = _trailersEnumerator.Current.Value.GetEnumerator(); _knownHeaderType = _trailersEnumerator.CurrentKnownType; return(true); } } else { if (!_headersEnumerator.MoveNext()) { enumerator = default; return(false); } else { enumerator = _headersEnumerator.Current.Value.GetEnumerator(); _knownHeaderType = _headersEnumerator.CurrentKnownType; return(true); } } }
internal static int GetResponseHeaderStaticTableId(KnownHeaderType responseHeaderType) { // Not Implemented return(-1); }
internal static int GetResponseHeaderStaticTableId(KnownHeaderType responseHeaderType) { switch (responseHeaderType) { case KnownHeaderType.CacheControl: return(H2StaticTable.CacheControl); case KnownHeaderType.Date: return(H2StaticTable.Date); case KnownHeaderType.TransferEncoding: return(H2StaticTable.TransferEncoding); case KnownHeaderType.Via: return(H2StaticTable.Via); case KnownHeaderType.Allow: return(H2StaticTable.Allow); case KnownHeaderType.ContentType: return(H2StaticTable.ContentType); case KnownHeaderType.ContentEncoding: return(H2StaticTable.ContentEncoding); case KnownHeaderType.ContentLanguage: return(H2StaticTable.ContentLanguage); case KnownHeaderType.ContentLocation: return(H2StaticTable.ContentLocation); case KnownHeaderType.ContentRange: return(H2StaticTable.ContentRange); case KnownHeaderType.Expires: return(H2StaticTable.Expires); case KnownHeaderType.LastModified: return(H2StaticTable.LastModified); case KnownHeaderType.AcceptRanges: return(H2StaticTable.AcceptRanges); case KnownHeaderType.Age: return(H2StaticTable.Age); case KnownHeaderType.ETag: return(H2StaticTable.ETag); case KnownHeaderType.Location: return(H2StaticTable.Location); case KnownHeaderType.ProxyAuthenticate: return(H2StaticTable.ProxyAuthenticate); case KnownHeaderType.RetryAfter: return(H2StaticTable.RetryAfter); case KnownHeaderType.Server: return(H2StaticTable.Server); case KnownHeaderType.SetCookie: return(H2StaticTable.SetCookie); case KnownHeaderType.Vary: return(H2StaticTable.Vary); case KnownHeaderType.WWWAuthenticate: return(H2StaticTable.WwwAuthenticate); case KnownHeaderType.AccessControlAllowOrigin: return(H2StaticTable.AccessControlAllowOrigin); case KnownHeaderType.ContentLength: return(H2StaticTable.ContentLength); default: return(-1); } }