Class UnaryCallable<RequestT,ResponseT> (2.23.0)

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.

Inheritance

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

Type Parameters

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

The request to send to the service.

Returns
TypeDescription
ResponseT

the call result

call(RequestT request, ApiCallContext context)

public ResponseT call(RequestT request, ApiCallContext context)

Perform a call synchronously.

Parameters
NameDescription
requestRequestT

The request to send to the service.

contextApiCallContext

ApiCallContext to make the call with

Returns
TypeDescription
ResponseT

the call result

futureCall(RequestT request)

public ApiFuture<ResponseT> futureCall(RequestT request)

Same as #futureCall(Object, ApiCallContext), with a null context.

Parameter
NameDescription
requestRequestT

request

Returns
TypeDescription
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
NameDescription
requestRequestT
contextApiCallContext

ApiCallContext to make the call with

Returns
TypeDescription
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
NameDescription
defaultCallContextApiCallContext

the default ApiCallContext.

Returns
TypeDescription
UnaryCallable<RequestT,ResponseT>