Class BufferingStreamObserver<T extends @NonNull Object>

java.lang.Object
org.apache.beam.sdk.fn.stream.BufferingStreamObserver<T>
All Implemented Interfaces:
org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<T>

@ThreadSafe public final class BufferingStreamObserver<T extends @NonNull Object> extends Object implements org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<T>
A thread safe StreamObserver which uses a bounded queue to pass elements to a processing thread responsible for interacting with the underlying CallStreamObserver.

Flow control with the underlying CallStreamObserver is handled with a Phaser which waits for advancement of the phase if the CallStreamObserver is not ready. Callers are expected to advance the Phaser whenever the underlying CallStreamObserver becomes ready.

  • Constructor Details

    • BufferingStreamObserver

      public BufferingStreamObserver(Phaser phaser, org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.CallStreamObserver<T> outboundObserver, ExecutorService executor, int bufferSize)
  • Method Details

    • onNext

      public void onNext(T value)
      Specified by:
      onNext in interface org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<T extends @NonNull Object>
    • onError

      public void onError(Throwable t)
      Specified by:
      onError in interface org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<T extends @NonNull Object>
    • onCompleted

      public void onCompleted()
      Specified by:
      onCompleted in interface org.apache.beam.vendor.grpc.v1p69p0.io.grpc.stub.StreamObserver<T extends @NonNull Object>
    • getBufferSize

      public int getBufferSize()