code: // Generated by `RayCallGenerator.java`. DO NOT EDIT.
  
  package io.ray.api;
  
  import io.ray.api.call.CppActorTaskCaller;
  import io.ray.api.function.CppActorMethod;
  
  /** This class provides type-safe interfaces for remote actor calls. */
  interface CppActorCall {
  
    default <R> CppActorTaskCaller<R> task(CppActorMethod<R> cppActorMethod) {
      Object[] args = new Object[] {};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  
    default <R> CppActorTaskCaller<R> task(CppActorMethod<R> cppActorMethod, Object obj0) {
      Object[] args = new Object[] {obj0};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  
    default <R> CppActorTaskCaller<R> task(
        CppActorMethod<R> cppActorMethod, Object obj0, Object obj1) {
      Object[] args = new Object[] {obj0, obj1};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  
    default <R> CppActorTaskCaller<R> task(
        CppActorMethod<R> cppActorMethod, Object obj0, Object obj1, Object obj2) {
      Object[] args = new Object[] {obj0, obj1, obj2};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  
    default <R> CppActorTaskCaller<R> task(
        CppActorMethod<R> cppActorMethod, Object obj0, Object obj1, Object obj2, Object obj3) {
      Object[] args = new Object[] {obj0, obj1, obj2, obj3};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  
    default <R> CppActorTaskCaller<R> task(
        CppActorMethod<R> cppActorMethod,
        Object obj0,
        Object obj1,
        Object obj2,
        Object obj3,
        Object obj4) {
      Object[] args = new Object[] {obj0, obj1, obj2, obj3, obj4};
      return new CppActorTaskCaller<>((CppActorHandle) this, cppActorMethod, args);
    }
  }
  