X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ce58986d4fed13a128a5e251c23d339a0d2642a..ec0f63f2f483005848e9ff182daaa53825bb28dd:/src/bindings/python/simgrid_python.cpp diff --git a/src/bindings/python/simgrid_python.cpp b/src/bindings/python/simgrid_python.cpp index 79791a4cb2..aace9c9162 100644 --- a/src/bindings/python/simgrid_python.cpp +++ b/src/bindings/python/simgrid_python.cpp @@ -49,10 +49,12 @@ PYBIND11_MODULE(simgrid, m) m.def("info", [](char* s) { XBT_INFO("%s", s); }, "Display a logging message of default priority."); + /* this_actor namespace */ m.def("execute", py::overload_cast(&simgrid::s4u::this_actor::execute), "Block the actor, computing the given amount of flops"); - m.def("yield_", &simgrid::s4u::this_actor::yield); + m.def("yield_", &simgrid::s4u::this_actor::yield, "Yield the actor"); + /* Class Engine */ py::class_(m, "Engine") .def(py::init([](std::vector args) -> simgrid::s4u::Engine* { static char noarg[] = {'\0'}; @@ -64,26 +66,29 @@ PYBIND11_MODULE(simgrid, m) // Currently this can be dangling, we should wrap this somehow. return new simgrid::s4u::Engine(&argc, argv.get()); })) - .def("load_platform", &Engine::load_platform) - .def("load_deployment", &Engine::load_deployment) - .def("run", &Engine::run) - .def("register_function", [](Engine*, const char* name, std::function)> f) { - simgrid::simix::register_function( - name, [f](std::vector args) -> simgrid::simix::ActorCode { return [args, f]() { f(args); }; }); - }); + .def("load_platform", &Engine::load_platform, "Load a platform file describing the environment") + .def("load_deployment", &Engine::load_deployment, "Load a deployment file and launch the actors that it contains") + .def("run", &Engine::run, "Run the simulation") + .def("register_function", [](Engine*, std::string name, std::function)> f) { + simgrid::simix::register_function(name, + [f](std::vector args) -> simgrid::simix::ActorCode { + return [args, f]() { f(args); }; + }); + }, "Registers the main function of an actor that will be launched from the deployment file"); // Currently, Host lead to segfault: - py::class_>(m, "Host").def("by_name", &Host::by_name); + py::class_>(m, "Host") + .def("by_name", &Host::by_name, "Retrieve an host from its name, or die"); - simgrid::s4u::ActorPtr (*create_actor)(std::string, Host*, std::function) = &Actor::create; - - py::class_(m, "Actor"); + py::class_(m, "Actor", "An actor is an independent stream of execution in your distributed application"); - m.def("create_actor", create_actor); + // Select the right template instantiation + simgrid::s4u::ActorPtr (*create_actor)(std::string, Host*, std::function) = &Actor::create; + m.def("create_actor", create_actor, "Create an actor"); m.def("create_actor", [](std::string name, Host* host) -> std::function)> { return [name, host](std::function f) -> ActorPtr { - return simgrid::s4u::Actor::create(name.c_str(), host, std::move(f)); + return simgrid::s4u::Actor::create(name, host, std::move(f)); }; - }); + }, "Create an actor"); }