WebKit roll 90808:90810
[chromium-blink-merge.git] / net / url_request / url_request_simple_job.h
blobbe574d6628dc1783cc621850d1d6d14a0e7f0eeb
1 // Copyright (c) 2011 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_REQUEST_SIMPLE_JOB_H_
6 #define NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_
7 #pragma once
9 #include <string>
11 #include "base/task.h"
12 #include "net/base/net_api.h"
13 #include "net/url_request/url_request_job.h"
15 namespace net {
17 class URLRequest;
19 class NET_API URLRequestSimpleJob : public URLRequestJob {
20 public:
21 explicit URLRequestSimpleJob(URLRequest* request);
23 virtual void Start();
24 virtual bool ReadRawData(IOBuffer* buf, int buf_size, int *bytes_read);
25 virtual bool GetMimeType(std::string* mime_type) const;
26 virtual bool GetCharset(std::string* charset);
28 protected:
29 virtual ~URLRequestSimpleJob();
31 // subclasses must override the way response data is determined.
32 virtual bool GetData(std::string* mime_type,
33 std::string* charset,
34 std::string* data) const = 0;
36 protected:
37 void StartAsync();
39 private:
40 std::string mime_type_;
41 std::string charset_;
42 std::string data_;
43 int data_offset_;
44 ScopedRunnableMethodFactory<URLRequestSimpleJob> method_factory_;
47 } // namespace net
49 #endif // NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_