-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;
-
-}
-
-/*****************************************************************************************
- * BYPASS XML SURF Methods *
- ***************************
- ***************************
-******************************************************************************************/
-#include "surf/surfxml_parse.h" /* to override surf_parse and bypass the parser */
-#include "surf/surf_private.h"
-typedef struct t_host_attr
-{
- //platform attribute
- // Mandatory attributes
- const char* id;
- double power_peak;
- // Optional attributes
- double power_scale;
- const char *power_trace;
- int state_initial;
- const char *state_trace;
- //deployment attribute
- const char* function;
- xbt_dynar_t args_list;
-}host_attr,*p_host_attr;
-
-typedef struct t_link_attr
-{
- //mandatory attributes
- const char* id;
- double bandwidth;
- double latency;
- // Optional attributes
- const char* bandwidth_trace;
- const char* latency_trace;
- const char* state_trace;
- int state_initial;
- int policy;
-}link_attr,*p_link_attr;
-
-typedef struct t_route_attr
-{
- const char *src_id;
- const char *dest_id;
- xbt_dynar_t links_id;
-
-}route_attr,*p_route_attr;
-
-//using xbt_dynar_t :
-static xbt_dynar_t host_list_d ;
-static xbt_dynar_t link_list_d ;
-static xbt_dynar_t route_list_d ;
-
-
-/**
- * create host resource via CPU model [for MSG]
- */
-
-static void create_host(const char* id,double power_peak,double power_sc,
- const char* power_tr,int state_init,
- const char* state_tr)
-{
-
- 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_host_create_resource(xbt_strdup(id), power_peak, power_scale,
- power_trace, state_initial, state_trace, current_property_set);
-
-}
-
-/**
- * create link resource via network model
- */
-static void create_link(const char *name,
- double bw_initial,const char *trace,double lat_initial,
- const char* latency_trace,int state_init, const char* state_trace,int policy)
-{
- tmgr_trace_t bw_trace;
- tmgr_trace_t lat_trace;
- e_surf_resource_state_t state_initial_link = SURF_RESOURCE_ON;
- e_surf_link_sharing_policy_t policy_initial_link = SURF_LINK_SHARED;
- tmgr_trace_t st_trace;
- if(trace)
- bw_trace = tmgr_trace_new(trace);
- else
- bw_trace = tmgr_trace_new("");
-
- if(latency_trace)
- lat_trace = tmgr_trace_new(latency_trace);
- else
- lat_trace = tmgr_trace_new("");
-
- if(state_trace)
- st_trace = tmgr_trace_new(state_trace);
- else
- st_trace = tmgr_trace_new("");
-
- if(state_init == -1)
- state_initial_link = SURF_RESOURCE_OFF;
- if(policy == -1)
- policy_initial_link = SURF_LINK_FATPIPE;
-
- surf_link_create_resource(xbt_strdup(name), bw_initial, bw_trace,
- lat_initial, lat_trace, state_initial_link, st_trace,
- policy_initial_link, xbt_dict_new());
-}
-
-
-/*
- *create host resource via workstation_ptask_L07 model [for SimDag]
- */
-static void create_host_wsL07(const char* id,double power_peak,double power_sc,
- const char* power_tr,int state_init,
- const char* state_tr)