io.ray.api.call.ActorTaskCaller Maven / Gradle / Ivy
package io.ray.api.call;
import io.ray.api.ActorHandle;
import io.ray.api.ObjectRef;
import io.ray.api.Ray;
import io.ray.api.function.RayFuncR;
import io.ray.api.options.CallOptions;
/**
* A helper to call java actor method.
*
* @param The type of the java actor method return value
*/
public class ActorTaskCaller {
private final ActorHandle actor;
private final RayFuncR func;
private final Object[] args;
private CallOptions.Builder builder = new CallOptions.Builder();
public ActorTaskCaller(ActorHandle actor, RayFuncR func, Object[] args) {
this.actor = actor;
this.func = func;
this.args = args;
}
public ActorTaskCaller setConcurrencyGroup(String name) {
builder.setConcurrencyGroupName(name);
return self();
}
private ActorTaskCaller self() {
return this;
}
/**
* Execute an java actor method remotely and return an object reference to the result object in
* the object store.
*
* @return an object reference to an object in the object store.
*/
@SuppressWarnings("unchecked")
public ObjectRef remote() {
return Ray.internal().callActor(actor, func, args, builder.build());
}
}