X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/09fcf6b32a677469632d6a2aad754ab4e431c530..HEAD:/src/bindings/python/simgrid_python.cpp diff --git a/src/bindings/python/simgrid_python.cpp b/src/bindings/python/simgrid_python.cpp index 97fa4d3302..d00494965a 100644 --- a/src/bindings/python/simgrid_python.cpp +++ b/src/bindings/python/simgrid_python.cpp @@ -235,26 +235,22 @@ PYBIND11_MODULE(simgrid, m) .def_static("create_vivaldi_zone", &simgrid::s4u::create_vivaldi_zone, "Creates a zone of type Vivaldi") .def_static("create_empty_zone", &simgrid::s4u::create_empty_zone, "Creates a zone of type Empty") .def_static("create_wifi_zone", &simgrid::s4u::create_wifi_zone, "Creates a zone of type Wi-Fi") - .def("add_route", - [](simgrid::s4u::NetZone* self, simgrid::kernel::routing::NetPoint* src, - simgrid::kernel::routing::NetPoint* dst, simgrid::kernel::routing::NetPoint* gw_src, - simgrid::kernel::routing::NetPoint* gw_dst, const std::vector& links, - bool symmetrical) { - PyErr_WarnEx(PyExc_DeprecationWarning, // XBT_ATTRIB_DEPRECATED_v335. Once removed, uncomment the - // deprecation of the AddRoute function in C++ - "Please call add_route either from Host to Host or NetZone to NetZone. This call will be " - "removed after SimGrid v3.35.", - 1); - self->add_route(src, dst, gw_src, gw_dst, links, symmetrical); - }) .def("add_route", py::overload_cast&, bool>(&simgrid::s4u::NetZone::add_route), - "Add a route between 2 netpoints") + "Add a route between 2 hosts") .def("add_route", py::overload_cast&>(&simgrid::s4u::NetZone::add_route), - "Add a route between 2 netpoints") + "Add a route between 2 hosts") + .def("add_route", + py::overload_cast&, bool>(&simgrid::s4u::NetZone::add_route), + "Add a route between 2 netzones. The gateway of each zone gets used.") + .def("add_route", + py::overload_cast&>(&simgrid::s4u::NetZone::add_route), + "Add a route between 2 netzones. The gateway of each zone gets used.") .def("create_host", py::overload_cast(&simgrid::s4u::NetZone::create_host), "Creates a host") .def("create_host", @@ -286,6 +282,10 @@ PYBIND11_MODULE(simgrid, m) .def("create_router", &simgrid::s4u::NetZone::create_router, "Create a router") .def("set_parent", &simgrid::s4u::NetZone::set_parent, "Set the parent of this zone") .def("set_property", &simgrid::s4u::NetZone::set_property, "Add a property to this zone") + .def("set_gateway", py::overload_cast(&simgrid::s4u::NetZone::set_gateway), + "Specify the gateway of this zone, to be used for inter-zone routes") + .def("set_gateway", py::overload_cast(&simgrid::s4u::NetZone::set_gateway), + "Specify the gateway of this zone, to be used for inter-zone routes") .def_property_readonly("netpoint", &simgrid::s4u::NetZone::get_netpoint, "Retrieve the netpoint associated to this zone") .def("seal", &simgrid::s4u::NetZone::seal, "Seal this NetZone") @@ -297,7 +297,7 @@ PYBIND11_MODULE(simgrid, m) /* Class ClusterCallbacks */ py::class_(m, "ClusterCallbacks", "Callbacks used to create cluster zones") - .def(py::init&, + .def(py::init&, const std::function&, const std::function&>()); @@ -440,8 +440,7 @@ PYBIND11_MODULE(simgrid, m) py::enum_(host, "SharingPolicy") .value("NONLINEAR", simgrid::s4u::Host::SharingPolicy::NONLINEAR) - .value("LINEAR", simgrid::s4u::Host::SharingPolicy::LINEAR) - .export_values(); + .value("LINEAR", simgrid::s4u::Host::SharingPolicy::LINEAR); /* Class Disk */ py::class_> disk( @@ -464,13 +463,11 @@ PYBIND11_MODULE(simgrid, m) "Textual representation of the Disk"); py::enum_(disk, "SharingPolicy") .value("NONLINEAR", simgrid::s4u::Disk::SharingPolicy::NONLINEAR) - .value("LINEAR", simgrid::s4u::Disk::SharingPolicy::LINEAR) - .export_values(); + .value("LINEAR", simgrid::s4u::Disk::SharingPolicy::LINEAR); py::enum_(disk, "Operation") .value("READ", simgrid::s4u::Disk::Operation::READ) .value("WRITE", simgrid::s4u::Disk::Operation::WRITE) - .value("READWRITE", simgrid::s4u::Disk::Operation::READWRITE) - .export_values(); + .value("READWRITE", simgrid::s4u::Disk::Operation::READWRITE); /* Class NetPoint */ py::class_> @@ -562,12 +559,17 @@ PYBIND11_MODULE(simgrid, m) "__repr__", [](const Link* l) { return "Link(" + l->get_name() + ")"; }, "Textual representation of the Link"); py::enum_(link, "SharingPolicy") - .value("NONLINEAR", Link::SharingPolicy::NONLINEAR) - .value("WIFI", Link::SharingPolicy::WIFI) - .value("SPLITDUPLEX", Link::SharingPolicy::SPLITDUPLEX) - .value("SHARED", Link::SharingPolicy::SHARED) - .value("FATPIPE", Link::SharingPolicy::FATPIPE) - .export_values(); + .value("NONLINEAR", Link::SharingPolicy::NONLINEAR, + "This policy takes a callback that specifies the maximal capacity as a function of the number of usage. " + "See the examples with 'degradation' in their name.") + .value("WIFI", Link::SharingPolicy::WIFI, "Pseudo-sharing policy requesting wifi-specific sharing.") + .value("SPLITDUPLEX", Link::SharingPolicy::SPLITDUPLEX, + "Each link is split in 2, UP and DOWN, one per direction. These links are SHARED.") + .value("SHARED", Link::SharingPolicy::SHARED, + "The bandwidth is shared between all comms using that link, regardless of their direction.") + .value("FATPIPE", Link::SharingPolicy::FATPIPE, + "Each comm can use the link fully, with no sharing (only a maximum). This is intended to represent the " + "backbone links that cannot be saturated by concurrent links, but have a maximal bandwidth."); /* Class LinkInRoute */ py::class_ linkinroute(m, "LinkInRoute", "Abstraction to add link in routes"); @@ -576,8 +578,7 @@ PYBIND11_MODULE(simgrid, m) py::enum_(linkinroute, "Direction") .value("UP", simgrid::s4u::LinkInRoute::Direction::UP) .value("DOWN", simgrid::s4u::LinkInRoute::Direction::DOWN) - .value("NONE", simgrid::s4u::LinkInRoute::Direction::NONE) - .export_values(); + .value("NONE", simgrid::s4u::LinkInRoute::Direction::NONE); /* Class Split-Duplex Link */ py::class_>(