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.
Type Parameters
Name | Description |
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<List<String>> theResult = streamingCallable.all().futureCall(request);
Type | Description |
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
Name | Description |
request | RequestT request |
Type | Description |
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
Name | Description |
request | RequestT request |
context | ApiCallContext context |
Type | Description |
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<List<String>> theResult = streamingCallable.all().futureCall(request);
Name | Description |
request | RequestT request |
Type | Description |
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.
Name | Description |
request | RequestT request |
context | ApiCallContext the context |
Type | Description |
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
Name | Description |
request | RequestT request |
responseObserver | ResponseObserver<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.
Name | Description |
request | RequestT request |
responseObserver | ResponseObserver<ResponseT> ResponseObserver to observe the streaming responses |
context | ApiCallContext 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);
Type | Description |
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
Name | Description |
request | RequestT request |
responseObserver | ApiStreamObserver<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.
Name | Description |
request | RequestT request |
responseObserver | ApiStreamObserver<ResponseT> ApiStreamObserver to observe the streaming responses |
context | ApiCallContext 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.
Name | Description |
defaultCallContext | ApiCallContext the default ApiCallContext. |
Type | Description |
ServerStreamingCallable<RequestT,ResponseT> |