Interface ApiStreamObserver<V>


  • 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 ApiStreamObservers do not need to be synchronized together; incoming and outgoing directions are independent. Since individual ApiStreamObservers 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.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void onCompleted()
      Receives a notification of successful stream completion.
      void onError​(java.lang.Throwable t)
      Receives a terminating error from the stream.
      void onNext​(V value)
      Receives a value from the stream.
    • Method Detail

      • onNext

        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.

        Parameters:
        value - the value passed to the stream
      • onError

        void onError​(java.lang.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.

        Parameters:
        t - the error occurred on the stream
      • onCompleted

        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.