public abstract class UnaryCallable<RequestT,ResponseT>
A UnaryCallable is an immutable object which is capable of making RPC calls to non-streaming API methods.
In typical usage, the request to send to the remote service will not be bound to the UnaryCallable, but instead is provided at call time, which allows for a UnaryCallable to be saved and used indefinitely.
There are two styles of calls that can be made through a UnaryCallable: synchronous and asynchronous.
Synchronous example:
RequestType request = RequestType.newBuilder().build();
UnaryCallable<RequestType, ResponseType> unaryCallable = api.doSomethingCallable();
ResponseType response = unaryCallable.call();
Asynchronous example:
RequestType request = RequestType.newBuilder().build();
UnaryCallable<RequestType, ResponseType> unaryCallable = api.doSomethingCallable();
ApiFuture<ResponseType> resultFuture = unaryCallable.futureCall();
// do other work
// ...
ResponseType response = resultFuture.get();
It is considered advanced usage for a user to create a UnaryCallable themselves. This class is intended to be created by a generated client class, and configured by instances of UnaryCallSettings.Builder which are exposed through the client settings class.
Type Parameters | |
---|---|
Name | Description |
RequestT | |
ResponseT |
Constructors
UnaryCallable()
protected UnaryCallable()
Methods
call(RequestT request)
public ResponseT call(RequestT request)
Same as #call(Object, ApiCallContext), with a null context.
Parameter | |
---|---|
Name | Description |
request | RequestT The request to send to the service. |
Returns | |
---|---|
Type | Description |
ResponseT | the call result |
call(RequestT request, ApiCallContext context)
public ResponseT call(RequestT request, ApiCallContext context)
Perform a call synchronously.
Parameters | |
---|---|
Name | Description |
request | RequestT The request to send to the service. |
context | ApiCallContext ApiCallContext to make the call with |
Returns | |
---|---|
Type | Description |
ResponseT | the call result |
futureCall(RequestT request)
public ApiFuture<ResponseT> futureCall(RequestT request)
Same as #futureCall(Object, ApiCallContext), with a null context.
Parameter | |
---|---|
Name | Description |
request | RequestT request |
Returns | |
---|---|
Type | Description |
ApiFuture<ResponseT> | ApiFuture for the call result |
futureCall(RequestT request, ApiCallContext context)
public abstract ApiFuture<ResponseT> futureCall(RequestT request, ApiCallContext context)
Perform a call asynchronously.
Parameters | |
---|---|
Name | Description |
request | RequestT |
context | ApiCallContext ApiCallContext to make the call with |
Returns | |
---|---|
Type | Description |
ApiFuture<ResponseT> | ApiFuture for the call result |
withDefaultCallContext(ApiCallContext defaultCallContext)
public UnaryCallable<RequestT,ResponseT> withDefaultCallContext(ApiCallContext defaultCallContext)
Returns a new UnaryCallable
with an ApiCallContext that is used as a default
when none is supplied in individual calls.
Parameter | |
---|---|
Name | Description |
defaultCallContext | ApiCallContext the default ApiCallContext. |
Returns | |
---|---|
Type | Description |
UnaryCallable<RequestT,ResponseT> |