#include "surf/surf_routing.h"
#include <string.h>
#include <ctype.h>
+
+extern "C" {
#include <lauxlib.h>
+}
#include <simgrid/host.h>
#include "src/surf/surf_private.h"
if (type != LUA_TSTRING && type != LUA_TNUMBER) {
XBT_ERROR("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));
+ link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1),"bandwidth of backbone",link.id);
lua_pop(L, 1);
lua_pushstring(L, "lat");
if (type != LUA_TSTRING && type != LUA_TNUMBER) {
XBT_ERROR("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));
+ link.latency = surf_parse_get_time(lua_tostring(L, -1),"latency of backbone",link.id);
lua_pop(L, 1);
link.initiallyOn = 1;
lua_pop(L, 1);
XBT_DEBUG("Create a host_link for host %s", netcard.id);
- sg_platf_new_netcard(&netcard);
+ sg_platf_new_hostlink(&netcard);
return 0;
}
// get Id Value
lua_pushstring(L, "id");
type = lua_gettable(L, -2);
- if (type != LUA_TSTRING && type != LUA_TNUMBER) {
+ if (type != LUA_TSTRING) {
XBT_ERROR("Attribute 'id' must be specified for any host and must be a string.");
}
host.id = lua_tostring(L, -1);
XBT_ERROR("Attribute 'speed' must be specified for host and must either be a string (in the correct format; check documentation) or a number.");
}
host.speed_peak = xbt_dynar_new(sizeof(double), NULL);
- xbt_dynar_push_as(host.speed_peak, double, parse_cpu_speed(lua_tostring(L, -1)));
+ if (type == LUA_TNUMBER)
+ xbt_dynar_push_as(host.speed_peak, double, lua_tointeger(L, -1));
+ else // LUA_TSTRING
+ xbt_dynar_push_as(host.speed_peak, double, surf_parse_get_speed(lua_tostring(L, -1), "speed of host", host.id));
lua_pop(L, 1);
// get core
if (type != LUA_TSTRING && type != LUA_TNUMBER) {
XBT_ERROR("Attribute 'bandwidth' must be specified for any link and must either be either a string (in the right format; see docs) or a number.");
}
- link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1));
+ if (type == LUA_TNUMBER)
+ link.bandwidth = lua_tonumber(L, -1);
+ else // LUA_TSTRING
+ link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1),"bandwidth of link", link.id);
lua_pop(L, 1);
//get latency value
if (type != LUA_TSTRING && type != LUA_TNUMBER) {
XBT_ERROR("Attribute 'lat' must be specified for any link 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));
+ 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);
lua_pop(L, 1);
/*Optional Arguments */
ASroute.gw_dst = sg_netcard_by_name_or_null(lua_tostring(L, -1));
lua_pop(L, 1);
- /*if (A_surfxml_ASroute_gw___src && !ASroute.gw_src)*/
- /*surf_parse_error("gw_src=\"%s\" not found for ASroute from \"%s\" to \"%s\"",*/
- /*A_surfxml_ASroute_gw___src, ASroute.src, ASroute.dst);*/
- /*if (A_surfxml_ASroute_gw___dst && !ASroute.gw_dst)*/
- /*surf_parse_error("gw_dst=\"%s\" not found for ASroute from \"%s\" to \"%s\"",*/
- /*A_surfxml_ASroute_gw___dst, ASroute.src, ASroute.dst);*/
-
lua_pushstring(L,"links");
lua_gettable(L,-2);
ASroute.link_list = xbt_str_split(lua_tostring(L, -1), ", \t\r\n");
}
lua_pop(L,1);
- sg_platf_new_ASroute(&ASroute);
+ sg_platf_new_route(&ASroute);
return 0;
}