+}
+
+/**
+ * \brief Returns the host where the current process is located.
+ * \param L a Lua state
+ * \return number of values returned to Lua
+ *
+ * - Return value (host): the current host
+ */
+static int l_host_self(lua_State * L)
+{
+ /* -- */
+ m_host_t host = MSG_host_self();
+ lua_newtable(L);
+ /* table */
+ m_host_t* lua_host = (m_host_t*) lua_newuserdata(L, sizeof(m_host_t));
+ /* table ud */
+ *lua_host = host;
+ luaL_getmetatable(L, HOST_MODULE_NAME);
+ /* table ud mt */
+ lua_setmetatable(L, -2);
+ /* table ud */
+ lua_setfield(L, -2, "__simgrid_host");
+ /* table */
+ return 1;
+}
+
+/**
+ * \brief Returns the value of a host property.
+ * \param L a Lua state
+ * \return number of values returned to Lua
+ *
+ * - Argument 1 (host): a host
+ * - Argument 2 (string): name of the property to get
+ * - Return value (string): the value of this property
+ */
+static int l_host_get_property_value(lua_State * L)
+{
+ m_host_t ht = sglua_checkhost(L, 1);
+ const char *prop = luaL_checkstring(L, 2);
+ lua_pushstring(L,MSG_host_get_property_value(ht,prop));
+ return 1;
+}
+
+/**
+ * \brief Makes the current process sleep for a while.
+ * \param L a Lua state
+ * \return number of values returned to Lua
+ *
+ * - Argument 1 (number): duration of the sleep
+ */
+static int l_host_sleep(lua_State *L)
+{
+ int time = luaL_checknumber(L, 1);
+ MSG_process_sleep(time);
+ return 0;
+}
+
+/**
+ * \brief Destroys a host.
+ * \param L a Lua state
+ * \return number of values returned to Lua
+ *
+ * - Argument 1 (host): the host to destroy
+ */
+static int l_host_destroy(lua_State *L)
+{
+ m_host_t ht = sglua_checkhost(L, 1);
+ __MSG_host_destroy(ht);
+ return 0;
+}
+
+static const luaL_reg host_functions[] = {
+ {"get_by_name", l_host_get_by_name},
+ {"name", l_host_get_name},
+ {"number", l_host_number},
+ {"at", l_host_at},
+ {"self", l_host_self},
+ {"get_prop_value", l_host_get_property_value},
+ {"sleep", l_host_sleep},
+ {"destroy", l_host_destroy},
+ // Bypass XML Methods
+ {"set_function", console_set_function},
+ {"set_property", console_host_set_property},
+ {NULL, NULL}
+};