- double power_scale = 1.0;
- tmgr_trace_t power_trace = NULL;
- e_surf_resource_state_t state_initial;
- tmgr_trace_t state_trace;
- if(power_sc) // !=0
- power_scale = power_sc;
- if (state_init == -1)
- state_initial = SURF_RESOURCE_OFF;
- else
- state_initial = SURF_RESOURCE_ON;
- if(power_tr)
- power_trace = tmgr_trace_new(power_tr);
- else
- power_trace = tmgr_trace_new("");
- if(state_tr)
- state_trace = tmgr_trace_new(state_tr);
- else
- state_trace = tmgr_trace_new("");
- current_property_set = xbt_dict_new();
- surf_wsL07_host_create_resource(xbt_strdup(id), power_peak, power_scale,
- power_trace, state_initial, state_trace, current_property_set);
-
-}
-/*
- * add new host to platform hosts list
- */
-static int Host_new(lua_State *L)
-{
-
- if(xbt_dynar_is_empty(host_list_d))
- host_list_d = xbt_dynar_new(sizeof(p_host_attr), &xbt_free_ref);
-
- p_host_attr host;
- const char * id;
- const char *power_trace;
- const char *state_trace;
- double power,power_scale;
- int state_initial;
- //get values from the table passed as argument
- if (lua_istable(L,-1)) {
-
- // get Id Value
- lua_pushstring(L,"id");
- lua_gettable(L, -2 );
- id = lua_tostring(L,-1);
- lua_pop(L,1);
-
- // get power value
- lua_pushstring(L,"power");
- lua_gettable(L, -2 );
- power = lua_tonumber(L,-1);
- lua_pop(L,1);
-
- //get power_scale
- lua_pushstring(L,"power_scale");
- lua_gettable(L, -2 );
- power_scale = lua_tonumber(L,-1);
- lua_pop(L,1);
-
- //get power_trace
- lua_pushstring(L,"power_trace");
- lua_gettable(L, -2 );
- power_trace = lua_tostring(L,-1);
- lua_pop(L,1);
-
- //get state initial
- lua_pushstring(L,"state_initial");
- lua_gettable(L, -2 );
- state_initial = lua_tonumber(L,-1);
- lua_pop(L,1);
-
- //get trace state
- lua_pushstring(L,"state_trace");
- lua_gettable(L, -2 );
- state_trace = lua_tostring(L,-1);
- lua_pop(L,1);
-
- } else {
- ERROR0("Bad Arguments to create host, Should be a table with named arguments");
- return -1;
- }
-
- host = malloc(sizeof(host_attr));
- host->id = id;
- host->power_peak = power;
- host->power_scale = power_scale;
- host->power_trace = power_trace;
- host->state_initial = state_initial;
- host->state_trace = state_trace;
- host->function = NULL;
- xbt_dynar_push(host_list_d, &host);
-
- return 0;