| Index: components/cronet/android/cronet_bidirectional_stream_adapter.h
|
| diff --git a/components/cronet/android/cronet_bidirectional_stream_adapter.h b/components/cronet/android/cronet_bidirectional_stream_adapter.h
|
| index 82a402bcc4a912b674a60bc7c74a28538d22aaa4..890ab91ee6b31f9d568a88ef64a58d00cc312cae 100644
|
| --- a/components/cronet/android/cronet_bidirectional_stream_adapter.h
|
| +++ b/components/cronet/android/cronet_bidirectional_stream_adapter.h
|
| @@ -43,7 +43,8 @@ class CronetBidirectionalStreamAdapter
|
| CronetBidirectionalStreamAdapter(
|
| CronetURLRequestContextAdapter* context,
|
| JNIEnv* env,
|
| - const base::android::JavaParamRef<jobject>& jbidi_stream);
|
| + const base::android::JavaParamRef<jobject>& jbidi_stream,
|
| + bool jdisable_auto_flush);
|
| ~CronetBidirectionalStreamAdapter() override;
|
|
|
| // Validates method and headers, initializes and starts the request. If
|
| @@ -81,6 +82,14 @@ class CronetBidirectionalStreamAdapter
|
| jint jlimit,
|
| jboolean jend_of_stream);
|
|
|
| + jboolean WritevData(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& jcaller,
|
| + const base::android::JavaParamRef<jobjectArray>& jbyte_buffers,
|
| + const base::android::JavaParamRef<jintArray>& jpositions,
|
| + const base::android::JavaParamRef<jintArray>& jlimits,
|
| + jboolean jend_of_stream);
|
| +
|
| // Releases all resources for the request and deletes the object itself.
|
| // |jsend_on_canceled| indicates if Java onCanceled callback should be
|
| // issued to indicate that no more callbacks will be issued.
|
| @@ -89,8 +98,9 @@ class CronetBidirectionalStreamAdapter
|
| jboolean jsend_on_canceled);
|
|
|
| private:
|
| + typedef std::vector<scoped_refptr<IOBufferWithByteBuffer>> IOByteBufferList;
|
| // net::BidirectionalStream::Delegate implementations:
|
| - void OnHeadersSent() override;
|
| + void OnStreamReady() override;
|
| void OnHeadersReceived(const net::SpdyHeaderBlock& response_headers) override;
|
| void OnDataRead(int bytes_read) override;
|
| void OnDataSent() override;
|
| @@ -104,8 +114,9 @@ class CronetBidirectionalStreamAdapter
|
| int buffer_size);
|
| void WriteDataOnNetworkThread(
|
| scoped_refptr<IOBufferWithByteBuffer> read_buffer,
|
| - int buffer_size,
|
| bool end_of_stream);
|
| + void WritevDataOnNetworkThread(const IOByteBufferList& buffers,
|
| + bool end_of_stream);
|
| void DestroyOnNetworkThread(bool send_on_canceled);
|
| // Gets headers as a Java array.
|
| base::android::ScopedJavaLocalRef<jobjectArray> GetHeadersArray(
|
| @@ -116,9 +127,14 @@ class CronetBidirectionalStreamAdapter
|
|
|
| // Java object that owns this CronetBidirectionalStreamAdapter.
|
| base::android::ScopedJavaGlobalRef<jobject> owner_;
|
| + const bool disable_auto_flush_;
|
| + // Whether an end of stream flag is passed in through a write call.
|
| + // Not applicable to HTTP methods that do not send data.
|
| + bool write_end_of_stream_;
|
|
|
| scoped_refptr<IOBufferWithByteBuffer> read_buffer_;
|
| scoped_refptr<IOBufferWithByteBuffer> write_buffer_;
|
| + IOByteBufferList write_buffer_list_;
|
| scoped_ptr<net::BidirectionalStream> bidi_stream_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CronetBidirectionalStreamAdapter);
|
|
|