Class UnaryCallable<RequestT,ResponseT> (2.59.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

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>