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