Interface ResponseObserver<V>
- All Known Subinterfaces:
BidiStreamObserver<RequestT,
ResponseT>
- All Known Implementing Classes:
StateCheckingResponseObserver
The application is responsible for implementing the ResponseObserver
and passing it to
GAX, which then calls the observer with the messages for the application to receive them. The
methods might be called by different threads, but are guaranteed to happen sequentially. The
order of callbacks is guaranteed to be:
- exactly 1 onStart
- 0 or more on Response
- exactly 1 onError or onComplete
By default, the stream uses automatic flow control, where the next response will be delivered
as soon as the current one is processed by onResponse. A consumer can disable automatic flow
control by calling disableAutoInboundFlowControl()
in onStart
. After this, the
consumer must request responses by calling request()
.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Receives a notification of successful stream completion.void
Receives a terminating error from the stream.void
onResponse
(V response) Receives a value from the stream.void
onStart
(StreamController controller) Called before the stream is started.
-
Method Details
-
onStart
Called before the stream is started. This must be invoked synchronously on the same thread that calledServerStreamingCallable.call(Object, ResponseObserver, ApiCallContext)
Allows for disabling flow control and early stream termination via
StreamController
.- Parameters:
controller
- The controller for the stream.
-
onResponse
Receives a value from the stream.Can be called many times but is never called after
onError(Throwable)
oronComplete()
are called.Clients may may receive 0 or more onResponse callbacks.
If an exception is thrown by an implementation the caller will terminate the stream by calling
onError(Throwable)
with the caught exception as the cause.- Parameters:
response
- the value passed to the stream
-
onError
Receives a terminating error from the stream.May only be called once, and if called, it must be the last method called. In particular, if an exception is thrown by an implementation of
onError
, no further calls to any method are allowed.- Parameters:
t
- the error occurred on the stream
-
onComplete
void onComplete()Receives a notification of successful stream completion.May only be called once, and if called, it must be the last method called. In particular, if an exception is thrown by an implementation of
onComplete
, no further calls to any method are allowed.
-