- if(!ht)
- luaL_error(L,"null Host");
- lua_pop(L,1);
- return ht;
-}
-
-
-static int Host_get_by_name(lua_State *L)
-{
- const char *name=luaL_checkstring(L,1);
- DEBUG0("Getting Host from name...");
- m_host_t msg_host = MSG_get_host_by_name(name);
- if (!msg_host)
- {
- //ERROR1("MSG_get_host_by_name(%s) failled",name);
- luaL_error(L,"null Host : MSG_get_host_by_name failled");
- //return -1;
- }
- lua_newtable (L); /* create a table, put the userdata on top of it */
- m_host_t *lua_host = (m_host_t*)lua_newuserdata(L,sizeof(m_host_t));
- *lua_host = msg_host;
- luaL_getmetatable(L,HOST_MODULE_NAME);
- lua_setmetatable(L,-2);
- lua_setfield (L, -2, "__simgrid_host"); /* put the userdata as field of the table */
- /* remove the args from the stack */
- lua_remove(L,1);
+ if (!ht)
+ luaL_error(L, "null Host");
+ lua_pop(L, 1);
+ return ht;
+}
+
+static int Host_get_by_name(lua_State * L)
+{
+ const char *name = luaL_checkstring(L, 1);
+ DEBUG0("Getting Host from name...");
+ m_host_t msg_host = MSG_get_host_by_name(name);
+ if (!msg_host) {
+ luaL_error(L, "null Host : MSG_get_host_by_name failled");
+ }
+ lua_newtable(L); /* create a table, put the userdata on top of it */
+ m_host_t *lua_host = (m_host_t *) lua_newuserdata(L, sizeof(m_host_t));
+ *lua_host = msg_host;
+ luaL_getmetatable(L, HOST_MODULE_NAME);
+ lua_setmetatable(L, -2);
+ lua_setfield(L, -2, "__simgrid_host"); /* put the userdata as field of the table */
+ /* remove the args from the stack */
+ lua_remove(L, 1);
+ return 1;
+}
+
+
+static int Host_get_name(lua_State * L)
+{
+ m_host_t ht = checkHost(L, -1);
+ lua_pushstring(L, MSG_host_get_name(ht));
+ return 1;
+}
+
+static int Host_number(lua_State * L)
+{
+ lua_pushnumber(L, MSG_get_host_number());
+ return 1;
+}
+
+static int Host_at(lua_State * L)
+{
+ int index = luaL_checkinteger(L, 1);
+ m_host_t host = MSG_get_host_table()[index - 1]; // lua indexing start by 1 (lua[1] <=> C[0])
+ lua_newtable(L); /* create a table, put the userdata on top of it */
+ m_host_t *lua_host = (m_host_t *) lua_newuserdata(L, sizeof(m_host_t));
+ *lua_host = host;
+ luaL_getmetatable(L, HOST_MODULE_NAME);
+ lua_setmetatable(L, -2);
+ lua_setfield(L, -2, "__simgrid_host"); /* put the userdata as field of the table */
+ return 1;
+
+}
+
+static int Host_self(lua_State * L)
+{
+ m_host_t host = MSG_host_self();
+ lua_newtable(L);
+ m_host_t *lua_host =(m_host_t *)lua_newuserdata(L,sizeof(m_host_t));
+ *lua_host = host;
+ luaL_getmetatable(L, HOST_MODULE_NAME);
+ lua_setmetatable(L, -2);
+ lua_setfield(L, -2, "__simgrid_host");
+ return 1;
+
+}
+
+static int Host_get_property_value(lua_State * L)
+{
+ m_host_t ht = checkHost(L, -2);
+ const char *prop = luaL_checkstring(L, -1);
+ lua_pushstring(L,MSG_host_get_property_value(ht,prop));