Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: components/cronet/android/cronet_bidirectional_stream_adapter.h

Issue 1856073002: Coalesce small buffers in net::BidirectionalStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Javadoc Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698