#include "kingate/headers.h" #include "kingate/exception.h" namespace kingate { void headers::set_header(const key_type& h,const mapped_type& c) { erase(h); insert(value_type(h,c)); } void headers::add_header(const key_type& h,const mapped_type& c) { insert(value_type(h,c)); } void headers::unset_header(const key_type& h) { erase(h); } const headers::mapped_type& headers::get_header(const key_type& h) const { const_iterator i=find(h); if(i==end()) throw exception_notfound(CODEPOINT,"No such header"); return i->second; } headers::mapped_type& headers::get_header(const key_type& h) { // XXX: or should it fail if there's no such thing, unlike operator[]? iterator i=find(h); if(i==end()) i = insert(value_type(h,"")); return i->second; } pair headers::get_headers(const key_type& h) const { return equal_range(h); } pair headers::get_headers(const key_type& h) { return equal_range(h); } bool headers::has_header(const key_type& h) const { return find(h)!=end(); } }