20 #ifndef ATSCPPAPI_HEADERS_H_
21 #define ATSCPPAPI_HEADERS_H_
41 enum Type { TYPE_REQUEST, TYPE_RESPONSE };
43 Headers(Type type = TYPE_REQUEST);
49 typedef NameValuesMap::size_type size_type;
50 typedef NameValuesMap::const_iterator const_iterator;
51 typedef NameValuesMap::const_reverse_iterator const_reverse_iterator;
56 const_iterator
begin()
const;
61 const_iterator
end()
const;
66 const_reverse_iterator
rbegin()
const;
71 const_reverse_iterator
rend()
const;
77 const_iterator
find(
const std::string &key)
const;
83 size_type
count(
const std::string &key)
const;
91 size_type
erase(
const std::string &key);
101 const_iterator
set(
const std::pair<std::string, std::list<std::string> > &pair);
112 const_iterator
set(
const std::string &key,
const std::list<std::string> &val);
123 const_iterator
set(
const std::string &key,
const std::string &val);
133 const_iterator
append(
const std::pair<std::string, std::list<std::string> > &pair);
144 const_iterator
append(
const std::string &key,
const std::list<std::string> &val);
155 const_iterator
append(
const std::string &key,
const std::string &val);
162 static std::string
getJoinedValues(
const std::list<std::string> &values,
char delimiter =
',');
169 std::string
getJoinedValues(
const std::string &key,
char value_delimiter =
',');
184 size_type
size()
const;
186 typedef std::map<std::string, std::list<std::string> > RequestCookieMap;
196 std::string comment_;
211 bool addCookie(
const std::string &name,
const std::string &value);
217 bool setCookie(
const std::string &name,
const std::string &value);
227 HeadersState *state_;
228 bool checkAndInitHeaders()
const;
229 void init(
void *hdr_buf,
void *hdr_loc);
231 void setType(Type type);
232 void updateRequestCookieHeaderFromMap();
233 const_iterator doBasicAppend(
const std::pair<std::string, std::list<std::string> > &pair);
234 size_type doBasicErase(
const std::string &key);