-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "simgrid/Exception.hpp"
+#include "simgrid/s4u/Engine.hpp"
#include "src/msg/msg_private.hpp"
+#include "xbt/functional.hpp"
#define MSG_CALL(type, oldname, args)
simgrid_run();
return MSG_OK;
}
-void MSG_function_register(const char* name, xbt_main_func_t code)
+void MSG_function_register(const char* name, int (*code)(int, char**))
{
- simgrid_register_function(name, code);
+ simgrid::s4u::Engine::get_instance()->register_function(
+ name, [code](std::vector<std::string> args) { return simgrid::xbt::wrap_main(code, std::move(args)); });
}
-void MSG_function_register_default(xbt_main_func_t code)
+void MSG_function_register_default(int (*code)(int, char**))
{
- simgrid_register_default(code);
+ simgrid::s4u::Engine::get_instance()->register_default(
+ [code](std::vector<std::string> args) { return simgrid::xbt::wrap_main(code, std::move(args)); });
}
double MSG_get_clock()
{