X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/caa0dfe63257d1d3b880d0c78ac2b0a7c4c2e7c8..13e64de335db45c87e2d7c8668ce8b16b7cb2139:/src/bindings/lua/lua_platf.cpp diff --git a/src/bindings/lua/lua_platf.cpp b/src/bindings/lua/lua_platf.cpp index ca19e544df..b29dcde512 100644 --- a/src/bindings/lua/lua_platf.cpp +++ b/src/bindings/lua/lua_platf.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-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. */ @@ -7,25 +7,28 @@ #include "lua_private.hpp" #include "simgrid/kernel/routing/NetPoint.hpp" +#include "src/kernel/resource/profile/Profile.hpp" #include "src/surf/network_interface.hpp" +#include "src/surf/surf_private.hpp" #include "src/surf/xml/platf_private.hpp" -#include -#include +#include "xbt/parse_units.hpp" -#include - -#include "src/surf/surf_private.hpp" #include #include #include #include + +#include +#include #include #include -XBT_LOG_NEW_DEFAULT_CATEGORY(lua_platf, "Lua bindings (platform module)"); +#include + +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua_platf, lua, "Lua bindings (platform module)"); -#define PLATF_MODULE_NAME "simgrid.engine" -#define AS_FIELDNAME "__simgrid_as" +constexpr char PLATF_MODULE_NAME[] = "simgrid.engine"; +constexpr char AS_FIELDNAME[] = "__simgrid_as"; /* ********************************************************************************* */ /* simgrid.platf API */ @@ -63,20 +66,23 @@ static simgrid::s4u::Link::SharingPolicy link_policy_get_by_name(const char* pol int console_open(lua_State*) { sg_platf_init(); - simgrid::s4u::on_platform_creation(); + simgrid::s4u::Engine::on_platform_creation(); return 0; } int console_close(lua_State*) { - simgrid::s4u::on_platform_created(); + simgrid::s4u::Engine::on_platform_created(); sg_platf_exit(); return 0; } int console_add_backbone(lua_State *L) { simgrid::kernel::routing::LinkCreationArgs link; + lua_Debug ar; + lua_getstack(L, 1, &ar); + lua_getinfo(L, "Sl", &ar); link.properties = nullptr; @@ -92,14 +98,16 @@ int console_add_backbone(lua_State *L) { type = lua_gettable(L, -2); lua_ensure(type == LUA_TSTRING || type == LUA_TNUMBER, "Attribute 'bandwidth' must be specified for backbone and must either be a string (in the right format; see docs) or a number."); - link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1), "bandwidth of backbone", link.id.c_str()); + link.bandwidths.push_back(xbt_parse_get_bandwidth(ar.short_src, ar.currentline, lua_tostring(L, -1), + "bandwidth of backbone", link.id.c_str())); lua_pop(L, 1); lua_pushstring(L, "lat"); type = lua_gettable(L, -2); lua_ensure(type == LUA_TSTRING || type == LUA_TNUMBER, "Attribute 'lat' must be specified for backbone and must either be a string (in the right format; see docs) or a number."); - link.latency = surf_parse_get_time(lua_tostring(L, -1), "latency of backbone", link.id.c_str()); + link.latency = + xbt_parse_get_time(ar.short_src, ar.currentline, lua_tostring(L, -1), "latency of backbone", link.id.c_str()); lua_pop(L, 1); lua_pushstring(L, "sharing_policy"); @@ -149,6 +157,9 @@ int console_add_host___link(lua_State *L) { int console_add_host(lua_State *L) { simgrid::kernel::routing::HostCreationArgs host; int type; + lua_Debug ar; + lua_getstack(L, 1, &ar); + lua_getinfo(L, "Sl", &ar); // we get values from the table passed as argument lua_ensure(lua_istable(L, -1), @@ -168,9 +179,10 @@ int console_add_host(lua_State *L) { lua_ensure(type == LUA_TSTRING || type == LUA_TNUMBER, "Attribute 'speed' must be specified for host and must either be a string (in the correct format; check documentation) or a number."); if (type == LUA_TNUMBER) - host.speed_per_pstate.push_back(lua_tointeger(L, -1)); + host.speed_per_pstate.push_back(lua_tonumber(L, -1)); else // LUA_TSTRING - host.speed_per_pstate.push_back(surf_parse_get_speed(lua_tostring(L, -1), "speed of host", host.id)); + host.speed_per_pstate.push_back( + xbt_parse_get_speed(ar.short_src, ar.currentline, lua_tostring(L, -1), "speed of host", host.id)); lua_pop(L, 1); // get core @@ -179,7 +191,7 @@ int console_add_host(lua_State *L) { if (not lua_isnumber(L, -1)) host.core_amount = 1; // Default value else - host.core_amount = lua_tonumber(L, -1); + host.core_amount = static_cast(lua_tointeger(L, -1)); if (host.core_amount == 0) host.core_amount = 1; lua_pop(L, 1); @@ -207,6 +219,9 @@ int console_add_host(lua_State *L) { int console_add_link(lua_State *L) { simgrid::kernel::routing::LinkCreationArgs link; + lua_Debug ar; + lua_getstack(L, 1, &ar); + lua_getinfo(L, "Sl", &ar); const char* policy; @@ -226,9 +241,10 @@ int console_add_link(lua_State *L) { lua_ensure(type == LUA_TSTRING || type == LUA_TNUMBER, "Attribute 'bandwidth' must be specified for any link and must either be either a string (in the right format; see docs) or a number."); if (type == LUA_TNUMBER) - link.bandwidth = lua_tonumber(L, -1); + link.bandwidths.push_back(lua_tonumber(L, -1)); else // LUA_TSTRING - link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1), "bandwidth of link", link.id.c_str()); + link.bandwidths.push_back(xbt_parse_get_bandwidth(ar.short_src, ar.currentline, lua_tostring(L, -1), + "bandwidth of link", link.id.c_str())); lua_pop(L, 1); //get latency value @@ -239,7 +255,8 @@ int console_add_link(lua_State *L) { if (type == LUA_TNUMBER) link.latency = lua_tonumber(L, -1); else // LUA_TSTRING - link.latency = surf_parse_get_time(lua_tostring(L, -1), "latency of link", link.id.c_str()); + link.latency = + xbt_parse_get_time(ar.short_src, ar.currentline, lua_tostring(L, -1), "latency of link", link.id.c_str()); lua_pop(L, 1); /*Optional Arguments */