-rw-r--r-- | include/kingate/cookies.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/kingate/cookies.h b/include/kingate/cookies.h index 83ef0c6..a1e813c 100644 --- a/include/kingate/cookies.h +++ b/include/kingate/cookies.h | |||
@@ -2,299 +2,299 @@ | |||
2 | #define __KINGATE_COOKIES_H | 2 | #define __KINGATE_COOKIES_H |
3 | 3 | ||
4 | #include <string> | 4 | #include <string> |
5 | #include <map> | 5 | #include <map> |
6 | #include <ostream> | 6 | #include <ostream> |
7 | 7 | ||
8 | /** | 8 | /** |
9 | * @file | 9 | * @file |
10 | * @brief cookies-related classes. | 10 | * @brief cookies-related classes. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | namespace kingate { | 13 | namespace kingate { |
14 | using namespace std; | 14 | using namespace std; |
15 | 15 | ||
16 | /** | 16 | /** |
17 | * Class, holding the cookie with parameters. | 17 | * Class, holding the cookie with parameters. |
18 | */ | 18 | */ |
19 | class cookie : public map<string,string> { | 19 | class cookie : public map<string,string> { |
20 | public: | 20 | public: |
21 | /** | 21 | /** |
22 | * Cookie name. | 22 | * Cookie name. |
23 | */ | 23 | */ |
24 | string name; | 24 | string name; |
25 | /** | 25 | /** |
26 | * Cookie value. | 26 | * Cookie value. |
27 | */ | 27 | */ |
28 | string value; | 28 | string value; |
29 | 29 | ||
30 | cookie() { } | 30 | cookie() { } |
31 | /** | 31 | /** |
32 | * @param n cookie name. | 32 | * @param n cookie name. |
33 | * @param v cookie value. | 33 | * @param v cookie value. |
34 | */ | 34 | */ |
35 | cookie(const string& n,const string& v) | 35 | cookie(const string& n,const string& v) |
36 | : name(n), value(v) { } | 36 | : name(n), value(v) { } |
37 | 37 | ||
38 | /** | 38 | /** |
39 | * set cookie parameter. | 39 | * set cookie parameter. |
40 | * @param p parameter name. | 40 | * @param p parameter name. |
41 | * @param v parameter value. | 41 | * @param v parameter value. |
42 | * @see _get_string() | 42 | * @see _get_string() |
43 | */ | 43 | */ |
44 | void _set_string(const string& p,const string& v); | 44 | void _set_string(const string& p,const string& v); |
45 | 45 | ||
46 | /** | 46 | /** |
47 | * @param n cookie name. | 47 | * @param n cookie name. |
48 | * @see get_name() | 48 | * @see get_name() |
49 | */ | 49 | */ |
50 | void set_name(const string& n) { name = n; } | 50 | void set_name(const string& n) { name = n; } |
51 | /** | 51 | /** |
52 | * @param v cookie value. | 52 | * @param v cookie value. |
53 | * @see set_value() | 53 | * @see set_value() |
54 | */ | 54 | */ |
55 | void set_value(const string& v) { value = v; } | 55 | void set_value(const string& v) { value = v; } |
56 | /** | 56 | /** |
57 | * @param c coomment. | 57 | * @param c coomment. |
58 | * @see get_comment() | 58 | * @see get_comment() |
59 | * @see has_comment() | 59 | * @see has_comment() |
60 | * @see unset_comment() | 60 | * @see unset_comment() |
61 | */ | 61 | */ |
62 | void set_comment(const string& c); | 62 | void set_comment(const string& c); |
63 | /** | 63 | /** |
64 | * @param d domain. | 64 | * @param d domain. |
65 | * @see get_domain() | 65 | * @see get_domain() |
66 | * @see has_domain() | 66 | * @see has_domain() |
67 | * @see unset_domain() | 67 | * @see unset_domain() |
68 | */ | 68 | */ |
69 | void set_domain(const string& d); | 69 | void set_domain(const string& d); |
70 | /** | 70 | /** |
71 | * @param ma max-age. | 71 | * @param ma max-age. |
72 | * @see get_max_age() | 72 | * @see get_max_age() |
73 | * @see has_max_age() | 73 | * @see has_max_age() |
74 | * @see unset_max_age() | 74 | * @see unset_max_age() |
75 | */ | 75 | */ |
76 | void set_max_age(const string& ma); | 76 | void set_max_age(const string& ma); |
77 | /** | 77 | /** |
78 | * @param p path. | 78 | * @param p path. |
79 | * @see get_path() | 79 | * @see get_path() |
80 | * @see has_path() | 80 | * @see has_path() |
81 | * @see unset_path() | 81 | * @see unset_path() |
82 | */ | 82 | */ |
83 | void set_path(const string& p); | 83 | void set_path(const string& p); |
84 | /** | 84 | /** |
85 | * set cookie security. | 85 | * set cookie security. |
86 | * @param s true if secure. | 86 | * @param s true if secure. |
87 | * @see get_secure() | 87 | * @see get_secure() |
88 | * @see is_secure() | 88 | * @see is_secure() |
89 | */ | 89 | */ |
90 | void set_secure(bool s); | 90 | void set_secure(bool s); |
91 | 91 | ||
92 | /** | 92 | /** |
93 | * @param e expiration time. | 93 | * @param e expiration time. |
94 | * @see get_expires() | 94 | * @see get_expires() |
95 | * @see has_expires() | 95 | * @see has_expires() |
96 | * @see unset_expires() | 96 | * @see unset_expires() |
97 | */ | 97 | */ |
98 | void set_expires(const string& e); | 98 | void set_expires(const string& e); |
99 | 99 | ||
100 | /** | 100 | /** |
101 | * get cookie parameter. | 101 | * get cookie parameter. |
102 | * @param p parameter name. | 102 | * @param p parameter name. |
103 | * @return parameter value. | 103 | * @return parameter value. |
104 | * @see _set_string() | 104 | * @see _set_string() |
105 | */ | 105 | */ |
106 | const string& _get_string(const string& p) const; | 106 | const string& _get_string(const string& p) const; |
107 | 107 | ||
108 | /** | 108 | /** |
109 | * @return cookie name. | 109 | * @return cookie name. |
110 | * @see set_name() | 110 | * @see set_name() |
111 | */ | 111 | */ |
112 | const string& get_name() const { return name; } | 112 | const string& get_name() const { return name; } |
113 | /** | 113 | /** |
114 | * @return cookie value. | 114 | * @return cookie value. |
115 | * @see set_value() | 115 | * @see set_value() |
116 | */ | 116 | */ |
117 | const string& get_value() const { return value; } | 117 | const string& get_value() const { return value; } |
118 | /** | 118 | /** |
119 | * @return cookie comment. | 119 | * @return cookie comment. |
120 | * @see set_comment() | 120 | * @see set_comment() |
121 | * @see has_comment() | 121 | * @see has_comment() |
122 | * @see unset_comment() | 122 | * @see unset_comment() |
123 | */ | 123 | */ |
124 | const string& get_comment() const; | 124 | const string& get_comment() const; |
125 | /** | 125 | /** |
126 | * @return cookie domain. | 126 | * @return cookie domain. |
127 | * @see set_domain() | 127 | * @see set_domain() |
128 | * @see has_domain() | 128 | * @see has_domain() |
129 | * @see unset_domain() | 129 | * @see unset_domain() |
130 | */ | 130 | */ |
131 | const string& get_domain() const; | 131 | const string& get_domain() const; |
132 | /** | 132 | /** |
133 | * @return cookie max-age. | 133 | * @return cookie max-age. |
134 | * @see set_max_age() | 134 | * @see set_max_age() |
135 | * @see has_max_age() | 135 | * @see has_max_age() |
136 | * @see unset_max_age() | 136 | * @see unset_max_age() |
137 | */ | 137 | */ |
138 | const string& get_max_age() const; | 138 | const string& get_max_age() const; |
139 | /** | 139 | /** |
140 | * @return cookie path. | 140 | * @return cookie path. |
141 | * @see set_path() | 141 | * @see set_path() |
142 | * @see has_path() | 142 | * @see has_path() |
143 | * @see unset_path() | 143 | * @see unset_path() |
144 | */ | 144 | */ |
145 | const string& get_path() const; | 145 | const string& get_path() const; |
146 | /** | 146 | /** |
147 | * @return cookie security. | 147 | * @return cookie security. |
148 | * @see is_secure() | 148 | * @see is_secure() |
149 | * @see set_secure() | 149 | * @see set_secure() |
150 | */ | 150 | */ |
151 | bool get_secure() const; | 151 | bool get_secure() const; |
152 | /** | 152 | /** |
153 | * @return cookie security. | 153 | * @return cookie security. |
154 | * @see get_secure() | 154 | * @see get_secure() |
155 | * @see set_secure() | 155 | * @see set_secure() |
156 | */ | 156 | */ |
157 | bool is_secure() const { return get_secure(); } | 157 | bool is_secure() const { return get_secure(); } |
158 | 158 | ||
159 | /** | 159 | /** |
160 | * @return cookie expiration time. | 160 | * @return cookie expiration time. |
161 | * @see set_expires() | 161 | * @see set_expires() |
162 | * @see has_expires() | 162 | * @see has_expires() |
163 | * @see unset_expires() | 163 | * @see unset_expires() |
164 | */ | 164 | */ |
165 | const string& get_expires() const; | 165 | const string& get_expires() const; |
166 | 166 | ||
167 | /** | 167 | /** |
168 | * @return true if cookie has comment. | 168 | * @return true if cookie has comment. |
169 | * @see set_comment() | 169 | * @see set_comment() |
170 | * @see get_comment() | 170 | * @see get_comment() |
171 | * @see unset_comment() | 171 | * @see unset_comment() |
172 | */ | 172 | */ |
173 | bool has_comment() const; | 173 | bool has_comment() const; |
174 | /** | 174 | /** |
175 | * @return true if cookie has domain. | 175 | * @return true if cookie has domain. |
176 | * @see set_domain() | 176 | * @see set_domain() |
177 | * @see get_domain() | 177 | * @see get_domain() |
178 | * @see unset_domain() | 178 | * @see unset_domain() |
179 | */ | 179 | */ |
180 | bool has_domain() const; | 180 | bool has_domain() const; |
181 | /** | 181 | /** |
182 | * @return true if cookie has max-age. | 182 | * @return true if cookie has max-age. |
183 | * @see set_max_age() | 183 | * @see set_max_age() |
184 | * @see get_max_age() | 184 | * @see get_max_age() |
185 | * @see unset_max_age() | 185 | * @see unset_max_age() |
186 | */ | 186 | */ |
187 | bool has_max_age() const; | 187 | bool has_max_age() const; |
188 | /** | 188 | /** |
189 | * @return true if cookie has path. | 189 | * @return true if cookie has path. |
190 | * @see set_path() | 190 | * @see set_path() |
191 | * @see get_path() | 191 | * @see get_path() |
192 | * @see unset_path() | 192 | * @see unset_path() |
193 | */ | 193 | */ |
194 | bool has_path() const; | 194 | bool has_path() const; |
195 | 195 | ||
196 | /** | 196 | /** |
197 | * @return true if cookie has expiration time. | 197 | * @return true if cookie has expiration time. |
198 | * @see set_expires() | 198 | * @see set_expires() |
199 | * @see get_expires() | 199 | * @see get_expires() |
200 | * @see unset_expires() | 200 | * @see unset_expires() |
201 | */ | 201 | */ |
202 | bool has_expires() const; | 202 | bool has_expires() const; |
203 | 203 | ||
204 | /** | 204 | /** |
205 | * rid cookie of comment. | 205 | * rid cookie of comment. |
206 | * @see set_comment() | 206 | * @see set_comment() |
207 | * @see get_comment() | 207 | * @see get_comment() |
208 | * @see has_comment() | 208 | * @see has_comment() |
209 | */ | 209 | */ |
210 | void unset_comment(); | 210 | void unset_comment(); |
211 | /** | 211 | /** |
212 | * rid cookie of domain. | 212 | * rid cookie of domain. |
213 | * @see set_domain() | 213 | * @see set_domain() |
214 | * @see get_domain() | 214 | * @see get_domain() |
215 | * @see has_domain() | 215 | * @see has_domain() |
216 | */ | 216 | */ |
217 | void unset_domain(); | 217 | void unset_domain(); |
218 | /** | 218 | /** |
219 | * rid cookie of max-age. | 219 | * rid cookie of max-age. |
220 | * @see set_max_age() | 220 | * @see set_max_age() |
221 | * @see get_max_age() | 221 | * @see get_max_age() |
222 | * @see has_max_age() | 222 | * @see has_max_age() |
223 | */ | 223 | */ |
224 | void unset_max_age(); | 224 | void unset_max_age(); |
225 | /** | 225 | /** |
226 | * rid cookie of path. | 226 | * rid cookie of path. |
227 | * @see set_path() | 227 | * @see set_path() |
228 | * @see get_path() | 228 | * @see get_path() |
229 | * @see has_path() | 229 | * @see has_path() |
230 | */ | 230 | */ |
231 | void unset_path(); | 231 | void unset_path(); |
232 | 232 | ||
233 | /** | 233 | /** |
234 | * rid cookie of expiration time. | 234 | * rid cookie of expiration time. |
235 | * @see set_expires() | 235 | * @see set_expires() |
236 | * @see get_expires() | 236 | * @see get_expires() |
237 | * @see has_expires() | 237 | * @see has_expires() |
238 | */ | 238 | */ |
239 | void unset_expires(); | 239 | void unset_expires(); |
240 | 240 | ||
241 | /** | 241 | /** |
242 | * render the 'Set-Cookie' HTTP header according to RFC2109. | 242 | * render the 'Set-Cookie' HTTP header according to RFC2109. |
243 | * Absolutely useless, only works with lynx. | 243 | * Absolutely useless, only works with lynx. |
244 | * @return the rendered header content. | 244 | * @return the rendered header content. |
245 | */ | 245 | */ |
246 | string set_cookie_header_rfc2109() const; | 246 | string set_cookie_header_rfc2109() const; |
247 | /** | 247 | /** |
248 | * render the 'Set-Cookie' header according to the early vague | 248 | * render the 'Set-Cookie' header according to the early vague |
249 | * netscape specs and common practice. | 249 | * netscape specs and common practice. |
250 | * @return the rendered header content. | 250 | * @return the rendered header content. |
251 | */ | 251 | */ |
252 | string set_cookie_header() const; | 252 | string set_cookie_header() const; |
253 | }; | 253 | }; |
254 | 254 | ||
255 | /** | 255 | /** |
256 | * Cookies container class. | 256 | * Cookies container class. |
257 | */ | 257 | */ |
258 | class cookies_t : public map<string,cookie> { | 258 | class cookies_t : public multimap<string,cookie> { |
259 | public: | 259 | public: |
260 | 260 | ||
261 | cookies_t() { } | 261 | cookies_t() { } |
262 | /** | 262 | /** |
263 | * @param s 'Cookie:' HTTP header contents to parse. | 263 | * @param s 'Cookie:' HTTP header contents to parse. |
264 | */ | 264 | */ |
265 | cookies_t(const string& s) { parse_cookies(s); } | 265 | cookies_t(const string& s) { parse_cookies(s); } |
266 | 266 | ||
267 | /** | 267 | /** |
268 | * @param c cookie to set. | 268 | * @param c cookie to set. |
269 | */ | 269 | */ |
270 | void set_cookie(const cookie& c) { (*this)[c.get_name()]=c; } | 270 | void set_cookie(const cookie& c); |
271 | /** | 271 | /** |
272 | * @param n cookie name to remove. | 272 | * @param n cookie name to remove. |
273 | */ | 273 | */ |
274 | void unset_cookie(const key_type& n) { erase(n); } | 274 | void unset_cookie(const key_type& n) { erase(n); } |
275 | /** | 275 | /** |
276 | * @param n cookie name. | 276 | * @param n cookie name. |
277 | * @return true if exists. | 277 | * @return true if exists. |
278 | */ | 278 | */ |
279 | bool has_cookie(const key_type& n) const; | 279 | bool has_cookie(const key_type& n) const; |
280 | /** | 280 | /** |
281 | * Return the named cookie if one exists. | 281 | * Return the named cookie if one exists. |
282 | * @param n cookie name. | 282 | * @param n cookie name. |
283 | * @return const reference to cookie object. | 283 | * @return const reference to cookie object. |
284 | */ | 284 | */ |
285 | const cookie& get_cookie(const key_type& n) const; | 285 | const cookie& get_cookie(const key_type& n) const; |
286 | /** | 286 | /** |
287 | * Return the named cookie if one exists. | 287 | * Return the named cookie if one exists. |
288 | * @param n cookie name. | 288 | * @param n cookie name. |
289 | * @return reference to cookie object. | 289 | * @return reference to cookie object. |
290 | */ | 290 | */ |
291 | cookie& get_cookie(const key_type& n); | 291 | cookie& get_cookie(const key_type& n); |
292 | 292 | ||
293 | /** | 293 | /** |
294 | * @param s HTTP 'Cookie' header content. | 294 | * @param s HTTP 'Cookie' header content. |
295 | */ | 295 | */ |
296 | void parse_cookies(const string& s); | 296 | void parse_cookies(const string& s); |
297 | }; | 297 | }; |
298 | } | 298 | } |
299 | 299 | ||
300 | #endif /* __KINGATE_COOKIES_H */ | 300 | #endif /* __KINGATE_COOKIES_H */ |