Home | History | Annotate | Download | only in url_request
      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.
      4 
      5 #ifndef NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_
      6 #define NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_
      7 
      8 #include <vector>
      9 
     10 #include "net/base/net_export.h"
     11 #include "net/http/http_byte_range.h"
     12 #include "net/url_request/url_request_job.h"
     13 
     14 namespace net {
     15 
     16 class HttpRequestHeaders;
     17 
     18 // URLRequestJob with support for parsing range requests.
     19 // It is up to subclasses to handle the response
     20 // and deal with an errors parsing the range request header.
     21 // This must be done after Start() has been called.
     22 class NET_EXPORT URLRangeRequestJob : public URLRequestJob {
     23  public:
     24   URLRangeRequestJob(URLRequest* request,
     25                      NetworkDelegate* delegate);
     26 
     27   virtual void SetExtraRequestHeaders(
     28       const HttpRequestHeaders& headers) OVERRIDE;
     29 
     30   const std::vector<HttpByteRange>& ranges() const { return ranges_; }
     31   int range_parse_result() const { return range_parse_result_; }
     32 
     33  protected:
     34   virtual ~URLRangeRequestJob();
     35 
     36  private:
     37   std::vector<HttpByteRange> ranges_;
     38   int range_parse_result_;
     39 };
     40 
     41 }  // namespace net
     42 
     43 #endif  // NET_URL_REQUEST_URL_RANGE_REQUEST_JOB_H_
     44