Home | History | Annotate | Download | only in url_request
      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