- auto i = simix_global->registered_functions.find(name);
- if (i == simix_global->registered_functions.end())
- return simix_global->default_function;
- else
- return i->second;
-}
-
-/**
- * \brief Bypass the parser, get arguments, and set function to each process
- */
-
-void SIMIX_process_set_function(const char *process_host,
- const char *process_function,
- xbt_dynar_t arguments,
- double process_start_time,
- double process_kill_time)
-{
- s_sg_platf_process_cbarg_t process;
- memset(&process,0,sizeof(process));
-
- sg_host_t host = sg_host_by_name(process_host);
- if (!host)
- THROWF(arg_error, 0, "Host '%s' unknown", process_host);
- process.host = host->cname();
-
- process.argc = 1 + xbt_dynar_length(arguments);
- process.argv = (const char**)xbt_new(char *, process.argc + 1);
- process.argv[0] = xbt_strdup(process_function);
+ const simgrid::s4u::Host* host = sg_host_by_name(process_host);
+ if (not host)
+ throw std::invalid_argument(simgrid::xbt::string_printf("Host '%s' unknown", process_host));
+ actor.host = process_host;
+ actor.args.emplace_back(process_function);