Chromium Code Reviews| Index: net/cronet/android/url_request_peer.h |
| diff --git a/net/cronet/android/url_request_peer.h b/net/cronet/android/url_request_peer.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ef9afe20942b66472ea9e3a68ef4e2a4784b5396 |
| --- /dev/null |
| +++ b/net/cronet/android/url_request_peer.h |
| @@ -0,0 +1,132 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef NET_CRONET_ANDROID_URL_REQUEST_PEER_H_ |
| +#define NET_CRONET_ANDROID_URL_REQUEST_PEER_H_ |
| + |
| +#include "net/base/upload_data_stream.h" |
| +#include "net/cronet/android/url_request_context_peer.h" |
| +#include "net/http/http_request_headers.h" |
| +#include "net/url_request/url_request.h" |
|
mmenke
2014/02/27 23:06:02
ref_ptr, request_priority, OVERRIDE, DISALLOW_COPY
mef
2014/03/03 19:15:13
Done.
|
| + |
| +// An adapter from the JNI |UrlRequest| object and the Chromium |URLRequest| |
| +// object. |
| +class URLRequestPeer : public net::URLRequest::Delegate { |
| + public: |
| + /* |
| + * The delegate which is called when the request finishes. |
| + */ |
|
mmenke
2014/02/27 23:06:02
C++-style comments?
mef
2014/03/03 19:15:13
Done.
|
| + class URLRequestPeerDelegate |
| + : public base::RefCountedThreadSafe<URLRequestPeerDelegate> { |
| + public: |
| + virtual void OnAppendChunkCompleted(URLRequestPeer* request) = 0; |
| + virtual void OnResponseStarted(URLRequestPeer* request) = 0; |
| + virtual void OnBytesRead(URLRequestPeer* request) = 0; |
| + virtual void OnRequestFinished(URLRequestPeer* request) = 0; |
| + |
| + protected: |
| + friend class base::RefCountedThreadSafe<URLRequestPeerDelegate>; |
| + virtual ~URLRequestPeerDelegate() {} |
| + }; |
| + |
| + URLRequestPeer(URLRequestContextPeer* context, |
| + URLRequestPeerDelegate* delegate, GURL url, |
| + net::RequestPriority priority); |
| + virtual ~URLRequestPeer(); |
| + |
| + // Sets the request method GET, POST etc |
| + void SetMethod(const std::string& method); |
| + |
| + // Adds a header to the request |
| + void AddHeader(const std::string& name, const std::string& value); |
| + |
| + // Sets the contents of the POST request |
| + void SetPostContent(const char* bytes, int bytes_len); |
| + |
| + // Indicates that the request body will be streamed by calling AppendChunk() |
| + // repeatedly. This must be called before Start(). |
| + void EnableStreamingUpload(); |
| + |
| + // Appends a chunk to the POST body |
| + // This must be called after EnableChunkedUpload() and Start(). |
| + void AppendChunk(const char *bytes, int bytes_len, bool is_last_chunk); |
| + |
| + // Starts the request. |
| + void Start(); |
| + |
| + // Cancels the request. |
| + void Cancel(); |
| + |
| + // Releases all resources for the request and deletes the object itself. |
| + void Destroy(); |
| + |
| + // Returns the URL of the request. |
| + GURL url() const; |
| + |
| + // Returns the error code after the request is complete. |
| + // Negative codes indicate system errors. |
| + int error_code() const; |
| + |
| + // Returns the HTTP status code. |
| + int http_status_code() const; |
| + |
| + // Returns the value of the content-length response header. |
| + int64 content_length() const; |
| + |
| + // Returns the value of the content-type response header. |
| + std::string content_type() const; |
| + |
| + // Returns the overall number of bytes read. |
| + size_t BytesRead() const; |
| + |
| + // Returns a pointer to the downloaded data. |
| + unsigned char* Data() const; |
| + |
| + virtual void OnResponseStarted(net::URLRequest* request) OVERRIDE; |
| + |
| + virtual void OnReadCompleted(net::URLRequest* request, |
| + int bytes_read) OVERRIDE; |
| + |
| + private: |
| + typedef Delegate inherited; |
|
mmenke
2014/02/27 23:06:02
?
mef
2014/03/03 19:15:13
Done.
|
| + |
| + URLRequestContextPeer* context_; |
| + scoped_refptr<URLRequestPeerDelegate> delegate_; |
| + GURL url_; |
| + net::RequestPriority priority_; |
| + std::string method_; |
| + net::HttpRequestHeaders headers_; |
| + net::URLRequest* url_request_; |
| + scoped_ptr<net::UploadDataStream> upload_data_stream_; |
| + scoped_refptr<net::GrowableIOBuffer> read_buffer_; |
| + int bytes_read_; |
| + int total_bytes_read_; |
| + int error_code_; |
| + int http_status_code_; |
| + std::string content_type_; |
| + bool canceled_; |
| + int64 expected_size_; |
| + bool streaming_upload_; |
| + |
| + static void OnInitiateConnectionWrapper(URLRequestPeer* self); |
| + static void OnCancelRequestWrapper(URLRequestPeer* self); |
| + static void OnDestroyRequest(URLRequestPeer* self); |
| + static void OnAppendChunkWrapper(URLRequestPeer *self, const char *bytes, |
| + int bytes_len, bool is_last_chunk); |
| + |
| + void OnInitiateConnection(); |
| + void OnCancelRequest(); |
| + void OnRequestSucceeded(); |
| + void OnRequestFailed(); |
| + void OnRequestCompleted(); |
| + void OnRequestCanceled(); |
| + void OnBytesRead(int bytes_read); |
| + void OnAppendChunk(const char *bytes, int bytes_len, bool is_last_chunk); |
| + |
| + void Read(); |
| + |
| + DISALLOW_EVIL_CONSTRUCTORS(URLRequestPeer); |
|
mmenke
2014/02/27 23:06:02
DISALLOW_COPY_AND_ASSIGN?
mef
2014/03/03 19:15:13
Done.
|
| +}; |
| + |
| +#endif // NET_CRONET_ANDROID_URL_REQUEST_PEER_H_ |