public abstract class BidiStreamingCallable<RequestT,ResponseT>
A BidiStreamingCallable is an immutable object which is capable of making RPC calls to bidirectional streaming API methods. Not all transports support streaming.
It is considered advanced usage for a user to create a BidiStreamingCallable 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
BidiStreamingCallable()
protected BidiStreamingCallable()
Methods
bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver) (deprecated)
public ApiStreamObserver<RequestT> bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver)
(deprecated) Please use #splitCall(ResponseObserver) instead.
Conduct a bidirectional streaming callName | Description |
responseObserver | ApiStreamObserver<ResponseT> ApiStreamObserver to observe the streaming responses |
Type | Description |
ApiStreamObserver<RequestT> | ApiStreamObserver which is used for making streaming requests. |
bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver, ApiCallContext context) (deprecated)
public ApiStreamObserver<RequestT> bidiStreamingCall(ApiStreamObserver<ResponseT> responseObserver, ApiCallContext context)
(deprecated) Please use #splitCall(ResponseObserver, ApiCallContext) instead.
Conduct a bidirectional streaming call with the given ApiCallContext.Name | Description |
responseObserver | ApiStreamObserver<ResponseT> ApiStreamObserver to observe the streaming responses |
context | ApiCallContext ApiCallContext to provide context information for the RPC call. |
Type | Description |
ApiStreamObserver<RequestT> | ApiStreamObserver which is used for making streaming requests. |
call()
public BidiStream<RequestT,ResponseT> call()
Send requests and iterate over server responses.
This returns a live stream that must either be fully consumed or cancelled. Example usage:
BidiStream
Type | Description |
BidiStream<RequestT,ResponseT> |
call(ApiCallContext context)
public BidiStream<RequestT,ResponseT> call(ApiCallContext context)
Send requests and iterate over server responses.
This returns a live stream that must either be fully consumed or cancelled.
Name | Description |
context | ApiCallContext |
Type | Description |
BidiStream<RequestT,ResponseT> |
call(BidiStreamObserver<RequestT,ResponseT> bidiObserver)
public void call(BidiStreamObserver<RequestT,ResponseT> bidiObserver)
Listens to server responses and send requests when the network is free. Example usage:
final Iterator<Integer> sourceDataIterator = intCollection.iterator();
BidiStreamObserver
Name | Description |
bidiObserver | BidiStreamObserver<RequestT,ResponseT> |
call(BidiStreamObserver<RequestT,ResponseT> bidiObserver, ApiCallContext context)
public void call(BidiStreamObserver<RequestT,ResponseT> bidiObserver, ApiCallContext context)
Listens to server responses and send requests when the network is free.
Name | Description |
bidiObserver | BidiStreamObserver<RequestT,ResponseT> |
context | ApiCallContext |
internalCall(ResponseObserver<ResponseT> responseObserver, ClientStreamReadyObserver<RequestT> onReady, ApiCallContext context)
public abstract ClientStream<RequestT> internalCall(ResponseObserver<ResponseT> responseObserver, ClientStreamReadyObserver<RequestT> onReady, ApiCallContext context)
The "base" method from which other forms of call
s are derived. Most users will not need
to call this method directly.
However, it is public
, since library authors might want to call this method in
adaptor classes.
Name | Description |
responseObserver | ResponseObserver<ResponseT> |
onReady | ClientStreamReadyObserver<RequestT> |
context | ApiCallContext |
Type | Description |
ClientStream<RequestT> |
splitCall(ResponseObserver<ResponseT> responseObserver)
public ClientStream<RequestT> splitCall(ResponseObserver<ResponseT> responseObserver)
Send requests to the server and listens to responses.
Example usage:
ResponseObserver<String> responseObserver = new ResponseObserver<String>() {
public void onStart(StreamController controller) {
// no-op
}
public void onResponse(String response) {
System.out.println(response);
}
public void onComplete() {
System.out.println("done!");
}
public void onError(Throwable t) {
System.out.println("error: " + t);
}
};
ClientStream<Integer> clientStream = bidiStreamingCallable.splitCall(responseObserver);
clientStream.send(42);
clientStream.send(43);
clientStream.close();
Name | Description |
responseObserver | ResponseObserver<ResponseT> |
Type | Description |
ClientStream<RequestT> |
splitCall(ResponseObserver<ResponseT> responseObserver, ApiCallContext context)
public ClientStream<RequestT> splitCall(ResponseObserver<ResponseT> responseObserver, ApiCallContext context)
Send requests to the server and listens to responses.
Name | Description |
responseObserver | ResponseObserver<ResponseT> |
context | ApiCallContext |
Type | Description |
ClientStream<RequestT> |
withDefaultCallContext(ApiCallContext defaultCallContext)
public BidiStreamingCallable<RequestT,ResponseT> withDefaultCallContext(ApiCallContext defaultCallContext)
Returns a new BidiStreamingCallable
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 |
BidiStreamingCallable<RequestT,ResponseT> |