Class ServerStreamingCallable<RequestT,ResponseT> (2.11.0)

public abstract class ServerStreamingCallable<RequestT,ResponseT>

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.

Inheritance

java.lang.Object > ServerStreamingCallable<RequestT,ResponseT>

Type Parameters

NameDescription
RequestT
ResponseT

Constructors

ServerStreamingCallable()

protected ServerStreamingCallable()

Methods

all()

public UnaryCallable<RequestT,List<ResponseT>> 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
Returns
TypeDescription
UnaryCallable<RequestT,List<ResponseT>>

The UnaryCallable.

blockingServerStreamingCall(RequestT request) (deprecated)

public Iterator<ResponseT> blockingServerStreamingCall(RequestT request)

Deprecated. Please use call() instead.

Conduct a iteration server streaming call

Parameter
NameDescription
requestRequestT

request

Returns
TypeDescription
Iterator<ResponseT>

Iterator which is used for iterating the responses.

blockingServerStreamingCall(RequestT request, ApiCallContext context) (deprecated)

public Iterator<ResponseT> blockingServerStreamingCall(RequestT request, ApiCallContext context)

Deprecated. Please use call() instead.

Conduct an iteration server streaming call

Parameters
NameDescription
requestRequestT

request

contextApiCallContext

context

Returns
TypeDescription
Iterator<ResponseT>

Iterator which is used for iterating the responses.

call(RequestT request)

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
Parameter
NameDescription
requestRequestT

request

Returns
TypeDescription
ServerStream<ResponseT>

ServerStream which is used for iterating the responses.

call(RequestT request, ApiCallContext context)

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
NameDescription
requestRequestT

request

contextApiCallContext

the context

Returns
TypeDescription
ServerStream<ResponseT>

ServerStream which is used for iterating the responses.

call(RequestT request, ResponseObserver<ResponseT> responseObserver)

public void call(RequestT request, ResponseObserver<ResponseT> responseObserver)

Conduct a server streaming call

Parameters
NameDescription
requestRequestT

request

responseObserverResponseObserver<ResponseT>

ResponseObserver to observe the streaming responses

call(RequestT request, ResponseObserver<ResponseT> responseObserver, ApiCallContext context)

public abstract void call(RequestT request, ResponseObserver<ResponseT> responseObserver, ApiCallContext context)

Conduct a server streaming call with the given ApiCallContext.

Parameters
NameDescription
requestRequestT

request

responseObserverResponseObserver<ResponseT>

ResponseObserver to observe the streaming responses

contextApiCallContext

ApiCallContext to provide context information for the RPC call.

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
TypeDescription
UnaryCallable<RequestT,ResponseT>

The UnaryCallable.

serverStreamingCall(RequestT request, ApiStreamObserver<ResponseT> responseObserver) (deprecated)

public void serverStreamingCall(RequestT request, ApiStreamObserver<ResponseT> responseObserver)

Deprecated. Please use the ResponseObserver variant instead.

Conduct a server streaming call

Parameters
NameDescription
requestRequestT

request

responseObserverApiStreamObserver<ResponseT>

ApiStreamObserver to observe the streaming responses

serverStreamingCall(RequestT request, ApiStreamObserver<ResponseT> responseObserver, ApiCallContext context) (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
NameDescription
requestRequestT

request

responseObserverApiStreamObserver<ResponseT>

ApiStreamObserver to observe the streaming responses

contextApiCallContext

ApiCallContext to provide context information for the RPC call.

withDefaultCallContext(ApiCallContext defaultCallContext)

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.

Parameter
NameDescription
defaultCallContextApiCallContext

the default ApiCallContext.

Returns
TypeDescription
ServerStreamingCallable<RequestT,ResponseT>