public void Initialize(IDictionary <string, StringValues> headers) { _headersEnumerator = default; _trailersEnumerator = default; _genericEnumerator = headers.GetEnumerator(); _isTrailers = false; _stringValuesEnumerator = default; Current = default; }
public void Initialize(HttpResponseTrailers headers) { _headersEnumerator = default; _trailersEnumerator = headers.GetEnumerator(); _genericEnumerator = null; _isTrailers = true; _stringValuesEnumerator = default; Current = default; }
public void Reset() { if (_genericEnumerator != null) { _genericEnumerator.Reset(); } else if (_isTrailers) { _trailersEnumerator.Reset(); } else { _headersEnumerator.Reset(); } _stringValuesEnumerator = default; }
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); } } }