+template <class Duration> inline void sleep_until(const SimulationTimePoint<Duration>& timeout_time)
+{
+ auto timeout_native = std::chrono::time_point_cast<SimulationClockDuration>(timeout_time);
+ this_actor::sleep_until(timeout_native.time_since_epoch().count());
+}
+
+/** Block the actor, computing the given amount of flops */
+XBT_PUBLIC void execute(double flop);
+
+/** Block the actor, computing the given amount of flops at the given priority.
+ * An execution of priority 2 computes twice as fast as an execution at priority 1. */
+XBT_PUBLIC void execute(double flop, double priority);
+
+XBT_PUBLIC void parallel_execute(int host_nb, sg_host_t* host_list, double* flops_amount, double* bytes_amount);
+XBT_PUBLIC void parallel_execute(int host_nb, sg_host_t* host_list, double* flops_amount, double* bytes_amount,
+ double timeout);
+
+XBT_PUBLIC ExecPtr exec_init(double flops_amounts);
+XBT_PUBLIC ExecPtr exec_async(double flops_amounts);
+
+/** @brief Returns the actor ID of the current actor). */
+XBT_PUBLIC aid_t get_pid();
+
+/** @brief Returns the ancestor's actor ID of the current actor. */
+XBT_PUBLIC aid_t get_ppid();
+
+/** @brief Returns the name of the current actor. */
+XBT_PUBLIC std::string get_name();
+/** @brief Returns the name of the current actor as a C string. */
+XBT_PUBLIC const char* get_cname();
+
+/** @brief Returns the name of the host on which the actor is running. */
+XBT_PUBLIC Host* get_host();
+
+/** @brief Suspend the actor. */
+XBT_PUBLIC void suspend();
+
+/** @brief yield the actor. */
+XBT_PUBLIC void yield();
+
+/** @brief Resume the actor. */
+XBT_PUBLIC void resume();
+
+XBT_PUBLIC bool is_suspended();
+
+/** @brief kill the actor. */
+XBT_PUBLIC void exit();
+
+#ifndef DOXYGEN
+/** @deprecated Please use std::function<void(int, void*)> for first parameter */
+XBT_ATTRIB_DEPRECATED_v323("Please use std::function<void(int, void*)> for first parameter.") XBT_PUBLIC
+ void on_exit(int_f_pvoid_pvoid_t fun, void* data);
+/** @brief Add a function to the list of "on_exit" functions. */
+XBT_PUBLIC void on_exit(std::function<void(int, void*)> fun, void* data);
+
+/** @brief Migrate the actor to a new host. */
+XBT_PUBLIC void migrate(Host* new_host);
+
+/** @deprecated See this_actor::get_name() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_name()") XBT_PUBLIC std::string getName();
+/** @deprecated See this_actor::get_cname() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_cname()") XBT_PUBLIC const char* getCname();
+/** @deprecated See this_actor::is_maestro() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::is_maestro()") XBT_PUBLIC bool isMaestro();
+/** @deprecated See this_actor::get_pid() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_pid()") XBT_PUBLIC aid_t getPid();
+/** @deprecated See this_actor::get_ppid() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_ppid()") XBT_PUBLIC aid_t getPpid();
+/** @deprecated See this_actor::get_host() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_host()") XBT_PUBLIC Host* getHost();
+/** @deprecated See this_actor::is_suspended() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::is_suspended()") XBT_PUBLIC bool isSuspended();
+/** @deprecated See this_actor::on_exit() */
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::on_exit()") XBT_PUBLIC void onExit(int_f_pvoid_pvoid_t fun, void* data);
+/** @deprecated See this_actor::exit() */
+XBT_ATTRIB_DEPRECATED_v324("Please use this_actor::exit()") XBT_PUBLIC void kill();
+#endif
+}
+
+/** @} */