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

Unified Diff: components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java

Issue 2339223002: Cronet API Refactoring (Closed)
Patch Set: Addressed Paul's comments + rebase Created 4 years, 3 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/api/src/org/chromium/net/ExperimentalBidirectionalStream.java
diff --git a/components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java b/components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f4c279bb93a01b23ede464242298707725cb5bc
--- /dev/null
+++ b/components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java
@@ -0,0 +1,50 @@
+// Copyright 2016 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.
+
+package org.chromium.net;
+
+/**
+ * {@link BidirectionalStream} that exposes experimental features.
+ * Created using {@link ExperimentalBidirectionalStream.Builder}. Every instance
pauljensen 2016/10/03 15:22:36 remove "ExperimentalBidirectionalStream."?
kapishnikov 2016/10/03 23:49:27 Done.
+ * of {@link BidirectionalStream} can be casted to an instance of this class.
+ *
+ * {@hide} as it's a prototype
+ */
+public abstract class ExperimentalBidirectionalStream extends BidirectionalStream {
+ /**
+ * Builder for {@link ExperimentalBidirectionalStream}s. Allows configuring stream before
+ * constructing it via {@link Builder#build}.
pauljensen 2016/10/03 15:22:36 add sentence describing how to create this
kapishnikov 2016/10/03 23:49:27 Done. Same for ExperimentalUrlRequest.Builder.
+ */
+ public abstract static class Builder extends BidirectionalStream.Builder {
+ /**
+ * Associates the annotation object with this request. May add more than one.
+ * Passed through to a {@link RequestFinishedInfo.Listener},
+ * see {@link RequestFinishedInfo#getAnnotations}.
+ *
+ * @param annotation an object to pass on to the {@link RequestFinishedInfo.Listener} with a
+ * {@link RequestFinishedInfo}.
+ * @return the builder to facilitate chaining.
+ */
+ public abstract Builder addRequestAnnotation(Object annotation);
+
+ // To support method chaining, override superclass methods to return an
+ // instance of this class instead of the parent.
+
+ @Override
+ public abstract Builder setHttpMethod(String method);
+
+ @Override
+ public abstract Builder addHeader(String header, String value);
+
+ @Override
+ public abstract Builder setPriority(int priority);
+
+ @Override
+ public abstract Builder delayRequestHeadersUntilFirstFlush(
+ boolean delayRequestHeadersUntilFirstFlush);
+
+ @Override
+ public abstract ExperimentalBidirectionalStream build();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698