aboutsummaryrefslogtreecommitdiff
path: root/stub
diff options
context:
space:
mode:
authorRyan Michela <deltahat@gmail.com>2017-07-25 14:36:51 -0700
committerEric Anderson <ejona@google.com>2017-07-25 14:36:51 -0700
commit3731a5dfcca995b7959d1918288911d7187fff77 (patch)
tree7abcce613a73f43c53b2e6b3c66dc05a2bad1f3a /stub
parentbd743f3afdae83658e8502ea80e9c26ae3f58580 (diff)
downloadgrpc-grpc-java-3731a5dfcca995b7959d1918288911d7187fff77.tar.gz
Implemented ClientCallStreamObserver.cancel()
Diffstat (limited to 'stub')
-rw-r--r--stub/src/main/java/io/grpc/stub/ClientCallStreamObserver.java18
-rw-r--r--stub/src/main/java/io/grpc/stub/ClientCalls.java5
2 files changed, 23 insertions, 0 deletions
diff --git a/stub/src/main/java/io/grpc/stub/ClientCallStreamObserver.java b/stub/src/main/java/io/grpc/stub/ClientCallStreamObserver.java
index 108dca71d..ca49ad57a 100644
--- a/stub/src/main/java/io/grpc/stub/ClientCallStreamObserver.java
+++ b/stub/src/main/java/io/grpc/stub/ClientCallStreamObserver.java
@@ -18,10 +18,28 @@ package io.grpc.stub;
import io.grpc.ExperimentalApi;
+import javax.annotation.Nullable;
+
/**
* A refinement of {@link CallStreamObserver} that allows for lower-level interaction with
* client calls.
*/
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1788")
public abstract class ClientCallStreamObserver<V> extends CallStreamObserver<V> {
+ /**
+ * Prevent any further processing for this {@code ClientCallStreamObserver}. No further messages
+ * will be received. The server is informed of cancellations, but may not stop processing the
+ * call. Cancelling an already
+ * {@code cancel()}ed {@code ClientCallStreamObserver} has no effect.
+ *
+ * <p>No other methods on this class can be called after this method has been called.
+ *
+ * <p>It is recommended that at least one of the arguments to be non-{@code null}, to provide
+ * useful debug information. Both argument being null may log warnings and result in suboptimal
+ * performance. Also note that the provided information will not be sent to the server.
+ *
+ * @param message if not {@code null}, will appear as the description of the CANCELLED status
+ * @param cause if not {@code null}, will appear as the cause of the CANCELLED status
+ */
+ public abstract void cancel(@Nullable String message, @Nullable Throwable cause);
}
diff --git a/stub/src/main/java/io/grpc/stub/ClientCalls.java b/stub/src/main/java/io/grpc/stub/ClientCalls.java
index c4158cc6b..f26796ce0 100644
--- a/stub/src/main/java/io/grpc/stub/ClientCalls.java
+++ b/stub/src/main/java/io/grpc/stub/ClientCalls.java
@@ -326,6 +326,11 @@ public final class ClientCalls {
public void setMessageCompression(boolean enable) {
call.setMessageCompression(enable);
}
+
+ @Override
+ public void cancel(@Nullable String message, @Nullable Throwable cause) {
+ call.cancel(message, cause);
+ }
}
private static final class StreamObserverToCallListenerAdapter<ReqT, RespT>