public interface ApiStreamObserver<V>
Receives notifications from an observable stream of messages.
It is used for sending messages in bidi (bidirectional) or client-streaming calls, or for receiving messages in bidi or server-streaming calls.
For outgoing messages, an ApiStreamObserver
is provided by GAX to the application, and
the application then provides the messages to send. For incoming messages, the application
implements the ApiStreamObserver
and passes it to GAX, which then calls the observer with
the messages for the application to receive them.
Implementations are expected to be thread-compatible. Separate
ApiStreamObserver
s do not need to be synchronized together; incoming and outgoing
directions are independent. Since individual ApiStreamObserver
s are not thread-safe, if
multiple threads will be writing to a ApiStreamObserver
concurrently, the application
must synchronize calls.
This interface is a fork of io.grpc.stub.StreamObserver to enable shadowing of Guava, and also to allow for a transport-agnostic interface that doesn't depend on gRPC.
Type Parameter
Name | Description |
V |
Methods
onCompleted()
public abstract void onCompleted()
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 onCompleted
, no further calls to any
method are allowed.
onError(Throwable t)
public abstract void onError(Throwable t)
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.
Name | Description |
t | Throwable the error occurred on the stream |
onNext(V value)
public abstract void onNext(V value)
Receives a value from the stream.
Can be called many times but is never called after #onError(Throwable) or #onCompleted() are called.
Clients may invoke onNext at most once for server streaming calls, but may receive many onNext callbacks. Servers may invoke onNext at most once for client streaming calls, but may receive many onNext callbacks.
If an exception is thrown by an implementation the caller is expected to terminate the stream by calling #onError(Throwable) with the caught exception prior to propagating it.
Name | Description |
value | V the value passed to the stream |