Class ServerStreamingCallable<RequestT,ResponseT>

java.lang.Object
com.google.api.gax.rpc.ServerStreamingCallable<RequestT,ResponseT>
Direct Known Subclasses:
TracedServerStreamingCallable

public abstract class ServerStreamingCallable<RequestT,ResponseT> extends Object
A ServerStreamingCallable is an immutable object which is capable of making RPC calls to server streaming API methods. Not all transports support streaming.

It is considered advanced usage for a user to create a ServerStreamingCallable themselves. This class is intended to be created by a generated client class, and configured by instances of StreamingCallSettings.Builder which are exposed through the client settings class.

  • Constructor Details

    • ServerStreamingCallable

      protected ServerStreamingCallable()
  • Method Details

    • first

      public UnaryCallable<RequestT,ResponseT> first()
      Construct a UnaryCallable that will yield the first item in the stream and cancel it. If the stream is empty, the item will be null.

      Example usage:

      
       StreamingCallable<String> streamingCallable = // ..
       String theResult = streamingCallable.first().call(request);
       ApiFuture<String> theResult = streamingCallable.first().futureCall(request);
       
      Returns:
      The UnaryCallable.
    • all

      Construct a UnaryCallable that will buffer the entire stream into memory before completing. If the stream is empty, then the list will be empty.

      Example usage:

      
       StreamingCallable<String> streamingCallable = // ..
       List<String> theResult = streamingCallable.all().call(request);
       ApiFuture<List<String>> theResult = streamingCallable.all().futureCall(request);
       
      Returns:
      The UnaryCallable.
    • call

      public ServerStream<ResponseT> call(RequestT request)
      Conduct a iteration server streaming call.

      This returns a live stream that must either be fully consumed or cancelled. Example usage:

      
       StreamingCallable<String> streamingCallable = // ..
       ServerStream stream = streamingCallable.call(request)
       for (String s : stream) {
         if ("needle".equals(s)) {
           // Cancelling the stream will cause `hasNext()` to return false on the next iteration,
           // naturally breaking the loop.
           stream.cancel();
         }
       }
       List<String> theResult = streamingCallable.all().call(request);
       ApiFuture<List<String>> theResult = streamingCallable.all().futureCall(request);
       
      Parameters:
      request - request
      Returns:
      ServerStream which is used for iterating the responses.
    • call

      public ServerStream<ResponseT> call(RequestT request, ApiCallContext context)
      Conduct a server streaming call with the given ApiCallContext.

      This returns a live stream that must either be fully consumed or cancelled.

      Parameters:
      request - request
      context - the context
      Returns:
      ServerStream which is used for iterating the responses.
    • call

      public abstract void call(RequestT request, ResponseObserver<ResponseT> responseObserver, ApiCallContext context)
      Conduct a server streaming call with the given ApiCallContext.
      Parameters:
      request - request
      responseObserver - ResponseObserver to observe the streaming responses
      context - ApiCallContext to provide context information for the RPC call.
    • call

      public void call(RequestT request, ResponseObserver<ResponseT> responseObserver)
      Conduct a server streaming call
      Parameters:
      request - request
      responseObserver - ResponseObserver to observe the streaming responses
    • serverStreamingCall

      @Deprecated public void serverStreamingCall(RequestT request, ApiStreamObserver<ResponseT> responseObserver, ApiCallContext context)
      Deprecated.
      Please use the ResponseObserver variant instead.
      Conduct a server streaming call with the given ApiCallContext.
      Parameters:
      request - request
      responseObserver - ApiStreamObserver to observe the streaming responses
      context - ApiCallContext to provide context information for the RPC call.
    • serverStreamingCall

      @Deprecated public void serverStreamingCall(RequestT request, ApiStreamObserver<ResponseT> responseObserver)
      Deprecated.
      Please use the ResponseObserver variant instead.
      Conduct a server streaming call
      Parameters:
      request - request
      responseObserver - ApiStreamObserver to observe the streaming responses
    • blockingServerStreamingCall

      @Deprecated public Iterator<ResponseT> blockingServerStreamingCall(RequestT request, ApiCallContext context)
      Deprecated.
      Please use call() instead.
      Conduct an iteration server streaming call
      Parameters:
      request - request
      context - context
      Returns:
      Iterator which is used for iterating the responses.
    • blockingServerStreamingCall

      @Deprecated public Iterator<ResponseT> blockingServerStreamingCall(RequestT request)
      Deprecated.
      Please use call() instead.
      Conduct a iteration server streaming call
      Parameters:
      request - request
      Returns:
      Iterator which is used for iterating the responses.
    • withDefaultCallContext

      public ServerStreamingCallable<RequestT,ResponseT> withDefaultCallContext(ApiCallContext defaultCallContext)
      Returns a new ServerStreamingCallable with an ApiCallContext that is used as a default when none is supplied in individual calls.
      Parameters:
      defaultCallContext - the default ApiCallContext.