1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_
6 #define NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_
8 #include "net/base/net_export.h"
9 #include "net/http/http_byte_range.h"
10 #include "net/url_request/url_request_job.h"
14 class HttpRequestHeaders
;
16 // URLRequestJob with support for parsing range requests.
17 // It is up to subclasses to handle the response
18 // and deal with an errors parsing the range request header.
19 // This must be done after Start() has been called.
20 class NET_EXPORT URLRangeRequestJob
: public URLRequestJob
{
22 URLRangeRequestJob(URLRequest
* request
,
23 NetworkDelegate
* delegate
);
25 virtual void SetExtraRequestHeaders(
26 const HttpRequestHeaders
& headers
) OVERRIDE
;
28 const std::vector
<HttpByteRange
>& ranges() const { return ranges_
; }
29 int range_parse_result() const { return range_parse_result_
; }
32 virtual ~URLRangeRequestJob();
35 std::vector
<HttpByteRange
> ranges_
;
36 int range_parse_result_
;
41 #endif // NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_