using System; using ln.types.btree; using System.Collections.Generic; using System.Collections; namespace ln.http { public class HttpHeaders : IEnumerable { MappingBTree headers = new MappingBTree((value) => value.Name); public HttpHeaders() { } public HttpHeader this[string headerName] => headers[headerName.ToUpper()]; public bool Contains(string headerName) => headers.ContainsKey(headerName.ToUpper()); public void Add(String headerName, String headerValue) => Add(new HttpHeader(headerName, headerValue)); public void Add(HttpHeader httpHeader) => headers.Add(httpHeader); public void Remove(HttpHeader httpHeader) => headers.Remove(httpHeader); public void Remove(string headerName) => headers.RemoveKey(headerName.ToUpper()); public void Set(String headerName, String headerValue) { if (headers.ContainsKey(headerName)) Remove(headerName); Add(new HttpHeader(headerName, headerValue)); } public IEnumerator GetEnumerator() => headers.Values.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => headers.Values.GetEnumerator(); } }