-/**
- * set function to process
- */
-static int Host_set_function(lua_State * L) //(host,function,nb_args,list_args)
-{
- // look for the index of host in host_list
- const char *host_id = luaL_checkstring(L, 1);
- const char *argument;
- unsigned int i;
- p_host_attr p_host;
-
- xbt_dynar_foreach(host_list_d, i, p_host) {
- if (p_host->id == host_id) {
- p_host->function = luaL_checkstring(L, 2);
- if (lua_istable(L, 3)) {
- p_host->args_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
- // fill the args list
- lua_pushnil(L);
- int j = 0;
- while (lua_next(L, 3) != 0) {
- argument = lua_tostring(L, -1);
- xbt_dynar_push(p_host->args_list, &argument);
- DEBUG2("index = %f , Arg_id = %s \n", lua_tonumber(L, -2),
- lua_tostring(L, -1));
- j++;
- lua_pop(L, 1);
- }
- }
- lua_pop(L, 1);
- return 0;
- }
- }
- ERROR1("Host : %s Not Found !!", host_id);
- return 1;
-}
-
-/*
- * surf parse bypass platform
- * through CPU/network Models
- */
-
-static int surf_parse_bypass_platform()
-{
- unsigned int i;
- p_host_attr p_host;
- p_link_attr p_link;
- p_route_attr p_route;
-
- // Init routing mode
- create_AS(AS->id, AS->mode);
-
-
- // Add Hosts
- xbt_dynar_foreach(host_list_d, i, p_host) {
- create_host(p_host->id, p_host->power_peak, p_host->power_scale,
- p_host->power_trace, p_host->state_initial,
- p_host->state_trace);
- //add to routing model host list
- surf_route_add_host((char *) p_host->id);
-
- }
-
- //add Links
- xbt_dynar_foreach(link_list_d, i, p_link) {
- create_link(p_link->id, p_link->bandwidth, p_link->bandwidth_trace,
- p_link->latency, p_link->latency_trace,
- p_link->state_initial, p_link->state_trace,
- p_link->policy);
- }
- // add route
- xbt_dynar_foreach(route_list_d, i, p_route) {
- surf_routing_add_route((char *) p_route->src_id,
- (char *) p_route->dest_id, p_route->links_id);
- }
- /* </platform> */
-
- // Finalize AS
- surf_AS_finalize(AS->id);
-
- // add traces
- surf_add_host_traces();
- surf_add_link_traces();
-
- return 0; // must 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}
+};