Chromium Code Reviews| Index: net/url_request/url_request_simple_job.h |
| diff --git a/net/url_request/url_request_simple_job.h b/net/url_request/url_request_simple_job.h |
| index 85d8f7e39edfa29edbdf26e7be96cccb11e157cc..bd6f33ab28a394211c2f96dd6006d6ea643bbe95 100644 |
| --- a/net/url_request/url_request_simple_job.h |
| +++ b/net/url_request/url_request_simple_job.h |
| @@ -7,11 +7,17 @@ |
| #include <string> |
| +#include "base/memory/ref_counted.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "base/strings/string_piece.h" |
| #include "net/base/completion_callback.h" |
| #include "net/base/net_export.h" |
| #include "net/url_request/url_range_request_job.h" |
| +namespace base { |
| +class RefCountedMemory; |
| +} |
| + |
| namespace net { |
| class URLRequest; |
| @@ -28,7 +34,8 @@ class NET_EXPORT URLRequestSimpleJob : public URLRangeRequestJob { |
| protected: |
| ~URLRequestSimpleJob() override; |
| - // Subclasses must override the way response data is determined. |
| + // Subclasses must override either GetData or GetRefCountedData to define the |
| + // way response data is determined. |
| // The return value should be: |
| // - OK if data is obtained; |
| // - ERR_IO_PENDING if async processing is needed to finish obtaining data. |
| @@ -41,7 +48,13 @@ class NET_EXPORT URLRequestSimpleJob : public URLRangeRequestJob { |
| virtual int GetData(std::string* mime_type, |
| std::string* charset, |
| std::string* data, |
| - const CompletionCallback& callback) const = 0; |
| + const CompletionCallback& callback) const; |
|
mmenke
2014/11/17 17:32:25
nit: Should probably be a blank line here.
Jeffrey Yasskin
2014/11/17 17:40:08
Done.
|
| + // Similar to GetData(), except |*data| can share ownership of the bytes |
| + // instead of copying them into a std::string. |
| + virtual int GetRefCountedData(std::string* mime_type, |
| + std::string* charset, |
| + scoped_refptr<base::RefCountedMemory>* data, |
| + const CompletionCallback& callback) const; |
| protected: |
|
mmenke
2014/11/17 17:32:25
while you're here, mind removing this redundant la
Jeffrey Yasskin
2014/11/17 17:40:08
Done.
|
| void StartAsync(); |
| @@ -52,7 +65,7 @@ class NET_EXPORT URLRequestSimpleJob : public URLRangeRequestJob { |
| HttpByteRange byte_range_; |
| std::string mime_type_; |
| std::string charset_; |
| - std::string data_; |
| + scoped_refptr<base::RefCountedMemory> data_; |
| int data_offset_; |
| base::WeakPtrFactory<URLRequestSimpleJob> weak_factory_; |
| }; |