StreamObserver<V>
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/1788") public abstract class ServerCallStreamObserver<V> extends CallStreamObserver<V>
CallStreamObserver
to allows for interaction with call
cancellation events on the server side.
Like StreamObserver
, implementations are not required to be thread-safe; if multiple
threads will be writing to an instance concurrently, the application must synchronize its calls.
DO NOT MOCK: The API is too complex to reliably mock. Use InProcessChannelBuilder to create "real" RPCs suitable for testing and interact with the server using a normal client stub.
Constructor | Description |
---|---|
ServerCallStreamObserver() |
Modifier and Type | Method | Description |
---|---|---|
abstract boolean |
isCancelled() |
If
true indicates that the call has been cancelled by the remote peer. |
abstract void |
setCompression(java.lang.String compression) |
Sets the compression algorithm to use for the call.
|
abstract void |
setOnCancelHandler(java.lang.Runnable onCancelHandler) |
disableAutoInboundFlowControl, isReady, request, setMessageCompression, setOnReadyHandler
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onCompleted, onError, onNext
public abstract boolean isCancelled()
true
indicates that the call has been cancelled by the remote peer.
This method may safely be called concurrently from multiple threads.
public abstract void setOnCancelHandler(java.lang.Runnable onCancelHandler)
Runnable
that will be called if the calls isCancelled()
state
changes from false
to true
. It is guaranteed that execution of the
Runnable
are serialized with calls to the 'inbound' StreamObserver
.
Note that the handler may be called some time after isCancelled()
has transitioned
to true
as other callbacks may still be executing in the 'inbound' observer.
Setting the onCancelHandler will suppress the on-cancel exception thrown by
StreamObserver.onNext(V)
.
onCancelHandler
- to call when client has cancelled the call.public abstract void setCompression(java.lang.String compression)
It is safe to call this even if the client does not support the compression format chosen. The implementation will handle negotiation with the client and may fall back to no compression.
compression
- the compression algorithm to use.java.lang.IllegalArgumentException
- if the compressor name can not be found.