+void Engine::add_model(std::shared_ptr<simgrid::kernel::resource::Model> model, std::vector<std::string>&& dep_models)
+{
+ simgrid::kernel::actor::simcall([this, &model, &dep_models] {
+ pimpl->add_model(std::move(model), std::forward<decltype(dep_models)>(dep_models));
+ });
+}
+
+const std::vector<simgrid::kernel::resource::Model*>& Engine::get_all_models() const
+{
+ return pimpl->get_all_models();
+}
+
+/**
+ * Creates a new platform, including hosts, links, and the routing table.
+ *
+ * @beginrst
+ * See also: :ref:`platform`.
+ * @endrst
+ */
+void Engine::load_platform(const std::string& platf) const
+{
+ double start = xbt_os_time();
+ parse_platform_file(platf);
+
+ double end = xbt_os_time();
+ XBT_DEBUG("PARSE TIME: %g", (end - start));
+}
+
+void Engine::register_function(const std::string& name, int (*code)(int, char**)) // XBT_ATTRIB_DEPRECATED_v329
+{
+ kernel::actor::ActorCodeFactory code_factory = [code](std::vector<std::string> args) {
+ return xbt::wrap_main(code, std::move(args));
+ };
+ register_function(name, code_factory);
+}
+void Engine::register_default(int (*code)(int, char**)) // XBT_ATTRIB_DEPRECATED_v329
+{
+ register_default([code](std::vector<std::string> args) { return xbt::wrap_main(code, std::move(args)); });
+}
+
+/** Registers the main function of an actor that will be launched from the deployment file */
+void Engine::register_function(const std::string& name, const std::function<void(int, char**)>& code)