-/* Copyright (c) 2006-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2021. 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. */
void parse_platform_file(const std::string& file)
{
const char* cfile = file.c_str();
- int len = strlen(cfile);
- int is_lua = len > 3 && file[len - 3] == 'l' && file[len - 2] == 'u' && file[len - 1] == 'a';
+ size_t len = strlen(cfile);
+ bool is_lua = len > 3 && file[len - 3] == 'l' && file[len - 2] == 'u' && file[len - 1] == 'a';
sg_platf_init();
*/
if (is_lua) {
#if SIMGRID_HAVE_LUA
+ static bool already_warned = false;
+ if (not already_warned) { // XBT_ATTRIB_DEPRECATED_v332
+ XBT_WARN("You are using a lua platform file. This feature is deprecated and will disappear after SimGrid v3.31.");
+ already_warned = true;
+ }
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_loadfile(L, cfile); // This loads the file without executing it.
/* Run the script */
- if (lua_pcall(L, 0, 0, 0)) {
- XBT_ERROR("FATAL ERROR:\n %s: %s\n\n", "Lua call failed. Error message:", lua_tostring(L, -1));
- xbt_die("Lua call failed. See Log");
- }
+ xbt_assert(lua_pcall(L, 0, 0, 0) == 0, "FATAL ERROR:\n %s: %s\n\n", "Lua call failed. Error message:",
+ lua_tostring(L, -1));
lua_close(L);
return;
#else
surf_parse_assert(traces_set_list.find(elm.first) != traces_set_list.end(), std::string("<trace_connect kind=\"LINK_AVAIL\">: Trace ")+elm.first+" undefined.");
auto profile = traces_set_list.at(elm.first);
- auto link = simgrid::s4u::Link::by_name(elm.second);
+ auto link = simgrid::s4u::Link::by_name_or_null(elm.second);
surf_parse_assert(link, std::string("<trace_connect kind=\"LINK_AVAIL\">: Link ") + elm.second + " undefined.");
link->set_state_profile(profile);
}
surf_parse_assert(traces_set_list.find(elm.first) != traces_set_list.end(), std::string("<trace_connect kind=\"BANDWIDTH\">: Trace ")+elm.first+" undefined.");
auto profile = traces_set_list.at(elm.first);
- auto link = simgrid::s4u::Link::by_name(elm.second);
+ auto link = simgrid::s4u::Link::by_name_or_null(elm.second);
surf_parse_assert(link, std::string("<trace_connect kind=\"BANDWIDTH\">: Link ") + elm.second + " undefined.");
link->set_bandwidth_profile(profile);
}
surf_parse_assert(traces_set_list.find(elm.first) != traces_set_list.end(), std::string("<trace_connect kind=\"LATENCY\">: Trace ")+elm.first+" undefined.");
auto profile = traces_set_list.at(elm.first);
- auto link = simgrid::s4u::Link::by_name(elm.second);
+ auto link = simgrid::s4u::Link::by_name_or_null(elm.second);
surf_parse_assert(link, std::string("<trace_connect kind=\"LATENCY\">: Link ") + elm.second + " undefined.");
link->set_latency_profile(profile);
}