1 // Copyright (c) 2006-2008 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_REQUEST_SIMPLE_JOB_H_ 6 #define NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_ 7 8 #include <string> 9 10 #include "net/url_request/url_request_job.h" 11 12 class URLRequest; 13 14 class URLRequestSimpleJob : public URLRequestJob { 15 public: 16 explicit URLRequestSimpleJob(URLRequest* request); 17 18 virtual void Start(); 19 virtual bool ReadRawData(net::IOBuffer* buf, int buf_size, int *bytes_read); 20 virtual bool GetMimeType(std::string* mime_type) const; 21 virtual bool GetCharset(std::string* charset); 22 23 protected: 24 ~URLRequestSimpleJob() {} 25 26 // subclasses must override the way response data is determined. 27 virtual bool GetData(std::string* mime_type, 28 std::string* charset, 29 std::string* data) const = 0; 30 31 private: 32 void StartAsync(); 33 34 std::string mime_type_; 35 std::string charset_; 36 std::string data_; 37 int data_offset_; 38 }; 39 40 #endif // NET_URL_REQUEST_URL_REQUEST_SIMPLE_JOB_H_ 41