All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ray.api.call.ActorTaskCaller Maven / Gradle / Ivy

There is a newer version: 2.36.0
Show newest version
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());
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy