1// Copyright (c) 2012 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_DATA_JOB_H_ 6#define NET_URL_REQUEST_URL_REQUEST_DATA_JOB_H_ 7 8#include <string> 9 10#include "net/url_request/url_request.h" 11#include "net/url_request/url_request_simple_job.h" 12 13class GURL; 14 15namespace net { 16 17class HttpResponseHeaders; 18class URLRequest; 19 20class NET_EXPORT URLRequestDataJob : public URLRequestSimpleJob { 21 public: 22 // Extracts info from a data scheme URL. Returns OK if successful. Returns 23 // ERR_INVALID_URL otherwise. 24 static int BuildResponse(const GURL& url, 25 std::string* mime_type, 26 std::string* charset, 27 std::string* data, 28 HttpResponseHeaders* headers); 29 30 URLRequestDataJob(URLRequest* request, NetworkDelegate* network_delegate); 31 32 // URLRequestSimpleJob 33 virtual int GetData(std::string* mime_type, 34 std::string* charset, 35 std::string* data, 36 const CompletionCallback& callback) const OVERRIDE; 37 38 private: 39 virtual ~URLRequestDataJob(); 40 41 DISALLOW_COPY_AND_ASSIGN(URLRequestDataJob); 42}; 43 44} // namespace net 45 46#endif // NET_URL_REQUEST_URL_REQUEST_DATA_JOB_H_ 47