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

Unified Diff: components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java

Issue 972213002: [Cronet] Implement batch read in CronetInputStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test Created 5 years, 10 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/java/src/org/chromium/net/urlconnection/CronetInputStream.java
diff --git a/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java b/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java
index fc72ab11b6c23360b846cca35160d633fce4667f..dc6e4b9928da0d850422c3ae00bb476f786b5e98 100644
--- a/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java
+++ b/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java
@@ -40,6 +40,21 @@ class CronetInputStream extends InputStream {
return -1;
}
+ @Override
+ public int read(byte[] buffer, int byteOffset, int byteCount) throws IOException {
mmenke 2015/03/05 19:24:46 Should our argument names match the official spec?
mmenke 2015/03/05 19:24:46 Maybe: if (byteCount == 0) return 0;
xunjieli 2015/03/05 20:55:13 Done.
xunjieli 2015/03/05 20:55:13 I am following the Android specs at http://develop
+ if (!mResponseDataCompleted && (mBuffer == null || !mBuffer.hasRemaining())) {
+ // Requests more data from CronetHttpURLConnection.
+ mBuffer = mHttpURLConnection.getMoreData();
+ }
mmenke 2015/03/05 19:24:46 Suggest turning this block into a private method,
xunjieli 2015/03/05 20:55:13 Done.
+ if (mBuffer != null && mBuffer.hasRemaining()) {
+ int oldPosition = mBuffer.position();
+ mBuffer.get(
+ buffer, byteOffset, Math.min(mBuffer.limit() - mBuffer.position(), byteCount));
+ return mBuffer.position() - oldPosition;
mmenke 2015/03/05 19:24:46 Is there any case where this is different from the
xunjieli 2015/03/05 20:55:13 Done. Thanks!
+ }
+ return -1;
+ }
+
void setResponseDataCompleted() {
mResponseDataCompleted = true;
}

Powered by Google App Engine
This is Rietveld 408576698