OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_HTTP_HTTP_RESPONSE_HEADERS_H_ | 5 #ifndef NET_HTTP_HTTP_RESPONSE_HEADERS_H_ |
6 #define NET_HTTP_HTTP_RESPONSE_HEADERS_H_ | 6 #define NET_HTTP_HTTP_RESPONSE_HEADERS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 const base::Time& current_time) const; | 222 const base::Time& current_time) const; |
223 | 223 |
224 // The following methods extract values from the response headers. If a | 224 // The following methods extract values from the response headers. If a |
225 // value is not present, then false is returned. Otherwise, true is returned | 225 // value is not present, then false is returned. Otherwise, true is returned |
226 // and the out param is assigned to the corresponding value. | 226 // and the out param is assigned to the corresponding value. |
227 bool GetMaxAgeValue(base::TimeDelta* value) const; | 227 bool GetMaxAgeValue(base::TimeDelta* value) const; |
228 bool GetAgeValue(base::TimeDelta* value) const; | 228 bool GetAgeValue(base::TimeDelta* value) const; |
229 bool GetDateValue(base::Time* value) const; | 229 bool GetDateValue(base::Time* value) const; |
230 bool GetLastModifiedValue(base::Time* value) const; | 230 bool GetLastModifiedValue(base::Time* value) const; |
231 bool GetExpiresValue(base::Time* value) const; | 231 bool GetExpiresValue(base::Time* value) const; |
| 232 bool GetStaleWhileRevalidateValue(base::TimeDelta* value) const; |
232 | 233 |
233 // Extracts the time value of a particular header. This method looks for the | 234 // Extracts the time value of a particular header. This method looks for the |
234 // first matching header value and parses its value as a HTTP-date. | 235 // first matching header value and parses its value as a HTTP-date. |
235 bool GetTimeValuedHeader(const std::string& name, base::Time* result) const; | 236 bool GetTimeValuedHeader(const std::string& name, base::Time* result) const; |
236 | 237 |
237 // Determines if this response indicates a keep-alive connection. | 238 // Determines if this response indicates a keep-alive connection. |
238 bool IsKeepAlive() const; | 239 bool IsKeepAlive() const; |
239 | 240 |
240 // Returns true if this response has a strong etag or last-modified header. | 241 // Returns true if this response has a strong etag or last-modified header. |
241 // See section 13.3.3 of RFC 2616. | 242 // See section 13.3.3 of RFC 2616. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 // with line_begin and end pointing at the begin and end of this line. | 314 // with line_begin and end pointing at the begin and end of this line. |
314 // Output will be a normalized version of this. | 315 // Output will be a normalized version of this. |
315 void ParseStatusLine(std::string::const_iterator line_begin, | 316 void ParseStatusLine(std::string::const_iterator line_begin, |
316 std::string::const_iterator line_end, | 317 std::string::const_iterator line_end, |
317 bool has_headers); | 318 bool has_headers); |
318 | 319 |
319 // Find the header in our list (case-insensitive) starting with parsed_ at | 320 // Find the header in our list (case-insensitive) starting with parsed_ at |
320 // index |from|. Returns string::npos if not found. | 321 // index |from|. Returns string::npos if not found. |
321 size_t FindHeader(size_t from, const base::StringPiece& name) const; | 322 size_t FindHeader(size_t from, const base::StringPiece& name) const; |
322 | 323 |
| 324 // Search the Cache-Control header for a directive matching |directive|. If |
| 325 // present, treat its value as a time offset in seconds, write it to |result|, |
| 326 // and return true. |
| 327 bool GetCacheControlDirective(const base::StringPiece& directive, |
| 328 base::TimeDelta* result) const; |
| 329 |
323 // Add a header->value pair to our list. If we already have header in our | 330 // Add a header->value pair to our list. If we already have header in our |
324 // list, append the value to it. | 331 // list, append the value to it. |
325 void AddHeader(std::string::const_iterator name_begin, | 332 void AddHeader(std::string::const_iterator name_begin, |
326 std::string::const_iterator name_end, | 333 std::string::const_iterator name_end, |
327 std::string::const_iterator value_begin, | 334 std::string::const_iterator value_begin, |
328 std::string::const_iterator value_end); | 335 std::string::const_iterator value_end); |
329 | 336 |
330 // Add to parsed_ given the fields of a ParsedHeader object. | 337 // Add to parsed_ given the fields of a ParsedHeader object. |
331 void AddToParsed(std::string::const_iterator name_begin, | 338 void AddToParsed(std::string::const_iterator name_begin, |
332 std::string::const_iterator name_end, | 339 std::string::const_iterator name_end, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 | 388 |
382 // The parsed http version number (not normalized). | 389 // The parsed http version number (not normalized). |
383 HttpVersion parsed_http_version_; | 390 HttpVersion parsed_http_version_; |
384 | 391 |
385 DISALLOW_COPY_AND_ASSIGN(HttpResponseHeaders); | 392 DISALLOW_COPY_AND_ASSIGN(HttpResponseHeaders); |
386 }; | 393 }; |
387 | 394 |
388 } // namespace net | 395 } // namespace net |
389 | 396 |
390 #endif // NET_HTTP_HTTP_RESPONSE_HEADERS_H_ | 397 #endif // NET_HTTP_HTTP_RESPONSE_HEADERS_H_ |
OLD | NEW |