Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
normalize some type names
[simgrid.git] / src / surf / surfxml_parse.c
index 6337923..722d451 100644 (file)
@@ -297,7 +297,7 @@ void STag_surfxml_platform(void)
 
 void STag_surfxml_host(void){
 //     XBT_INFO("STag_surfxml_host [%s]",A_surfxml_host_id);
-       struct_host = xbt_new0(s_hostSG_t, 1);
+       struct_host = xbt_new0(s_surf_parsing_host_arg_t, 1);
        struct_host->V_host_id = xbt_strdup(A_surfxml_host_id);
        struct_host->V_host_power_peak = get_cpu_power(A_surfxml_host_power);
        surf_parse_get_double(&(struct_host->V_host_power_scale), A_surfxml_host_availability);
@@ -314,21 +314,17 @@ void STag_surfxml_host(void){
 
        surfxml_call_cb_functions(STag_surfxml_host_cb_list);
 }
+void STag_surfxml_host_cluster(void){
+       surfxml_call_cb_functions(STag_surfxml_host_cb_list);
+}
 void ETag_surfxml_host(void){
        surfxml_call_cb_functions(ETag_surfxml_host_cb_list);
-       //xbt_free(struct_host->V_host_id);
-       struct_host->V_host_power_peak = 0.0;
-       struct_host->V_host_core = 0;
-       struct_host->V_host_power_scale = 0.0;
-       struct_host->V_host_state_initial = SURF_RESOURCE_ON;
-       struct_host->V_host_power_trace = NULL;
-       struct_host->V_host_state_trace = NULL;
-       xbt_free(struct_host->V_host_coord);
-       //xbt_free(host);
+       xbt_free(struct_host->V_host_id);
+       xbt_free(struct_host);
 }
 
 void STag_surfxml_router(void){
-       struct_router = xbt_new0(s_router_t, 1);
+       struct_router = xbt_new0(s_surf_parsing_router_arg_t, 1);
        struct_router->V_router_id = xbt_strdup(A_surfxml_router_id);
        struct_router->V_router_coord = xbt_strdup(A_surfxml_router_coordinates);
        surfxml_call_cb_functions(STag_surfxml_router_cb_list);
@@ -343,17 +339,19 @@ void ETag_surfxml_router(void){
 void STag_surfxml_cluster(void){
   surf_parse_models_setup(); /* ensure that the models are created after the last <config> tag. See comment in simgrid.dtd */
 
-       struct_cluster = xbt_new0(s_cluster_t, 1);
+       struct_cluster = xbt_new0(s_surf_parsing_cluster_arg_t, 1);
        struct_cluster->V_cluster_id = xbt_strdup(A_surfxml_cluster_id);
        struct_cluster->V_cluster_prefix = xbt_strdup(A_surfxml_cluster_prefix);
        struct_cluster->V_cluster_suffix = xbt_strdup(A_surfxml_cluster_suffix);
        struct_cluster->V_cluster_radical = xbt_strdup(A_surfxml_cluster_radical);
-       struct_cluster->S_cluster_power = xbt_strdup(A_surfxml_cluster_power);
-       struct_cluster->S_cluster_core = xbt_strdup(A_surfxml_cluster_core);
-       struct_cluster->S_cluster_bw = xbt_strdup(A_surfxml_cluster_bw);
-       struct_cluster->S_cluster_lat = xbt_strdup(A_surfxml_cluster_lat);
-       struct_cluster->S_cluster_bb_bw = xbt_strdup(A_surfxml_cluster_bb_bw);
-       struct_cluster->S_cluster_bb_lat = xbt_strdup(A_surfxml_cluster_bb_lat);
+       surf_parse_get_double(&struct_cluster->S_cluster_power,A_surfxml_cluster_power);
+       surf_parse_get_int(&struct_cluster->S_cluster_core,A_surfxml_cluster_core);
+       surf_parse_get_double(&struct_cluster->S_cluster_bw,A_surfxml_cluster_bw);
+       surf_parse_get_double(&struct_cluster->S_cluster_lat,A_surfxml_cluster_lat);
+       if(strcmp(A_surfxml_cluster_bb_bw,""))
+               surf_parse_get_double(&struct_cluster->S_cluster_bb_bw,A_surfxml_cluster_bb_bw);
+       if(strcmp(A_surfxml_cluster_bb_lat,""))
+               surf_parse_get_double(&struct_cluster->S_cluster_bb_lat,A_surfxml_cluster_bb_lat);
        if(!strcmp(A_surfxml_cluster_router_id,""))
                struct_cluster->S_cluster_router_id = bprintf("%s%s_router%s",
                                struct_cluster->V_cluster_prefix,
@@ -365,6 +363,9 @@ void STag_surfxml_cluster(void){
        struct_cluster->V_cluster_sharing_policy = AX_surfxml_cluster_sharing_policy;
        struct_cluster->V_cluster_bb_sharing_policy = AX_surfxml_cluster_bb_sharing_policy;
 
+       struct_cluster->V_cluster_availability_file = xbt_strdup(A_surfxml_cluster_availability_file);
+       struct_cluster->V_cluster_state_file = xbt_strdup(A_surfxml_cluster_state_file);
+
        surfxml_call_cb_functions(STag_surfxml_cluster_cb_list);
 }
 void ETag_surfxml_cluster(void){
@@ -373,22 +374,16 @@ void ETag_surfxml_cluster(void){
        xbt_free(struct_cluster->V_cluster_prefix);
        xbt_free(struct_cluster->V_cluster_suffix);
        xbt_free(struct_cluster->V_cluster_radical);
-       xbt_free(struct_cluster->S_cluster_power);
-       xbt_free(struct_cluster->S_cluster_core);
-       xbt_free(struct_cluster->S_cluster_bw);
-       xbt_free(struct_cluster->S_cluster_lat);
-       xbt_free(struct_cluster->S_cluster_bb_bw);
-       xbt_free(struct_cluster->S_cluster_bb_lat);
        xbt_free(struct_cluster->S_cluster_router_id);
-       struct_cluster->V_cluster_sharing_policy = 0;
-       struct_cluster->V_cluster_bb_sharing_policy = 0;
+       xbt_free(struct_cluster->V_cluster_availability_file);
+       xbt_free(struct_cluster->V_cluster_state_file);
        xbt_free(struct_cluster);
 }
 
 void STag_surfxml_peer(void){
   surf_parse_models_setup(); /* ensure that the models are created after the last <config> tag. See comment in simgrid.dtd */
 
-       struct_peer = xbt_new0(s_peer_t, 1);
+       struct_peer = xbt_new0(s_surf_parsing_peer_arg_t, 1);
        struct_peer->V_peer_id = xbt_strdup(A_surfxml_peer_id);
        struct_peer->V_peer_power = xbt_strdup(A_surfxml_peer_power);
        struct_peer->V_peer_bw_in = xbt_strdup(A_surfxml_peer_bw_in);
@@ -412,7 +407,7 @@ void ETag_surfxml_peer(void){
        xbt_free(struct_peer);
 }
 void STag_surfxml_link(void){
-       struct_lnk = xbt_new0(s_link_t, 1);
+       struct_lnk = xbt_new0(s_surf_parsing_link_arg_t, 1);
        struct_lnk->V_link_id = xbt_strdup(A_surfxml_link_id);
        surf_parse_get_double(&(struct_lnk->V_link_bandwidth),A_surfxml_link_bandwidth);
        struct_lnk->V_link_bandwidth_file = tmgr_trace_new(A_surfxml_link_bandwidth_file);
@@ -437,19 +432,14 @@ void STag_surfxml_link(void){
                 struct_lnk->V_policy_initial_link = SURF_LINK_FULLDUPLEX;
        }
 
-
+       surfxml_call_cb_functions(STag_surfxml_link_cb_list);
+}
+void STag_surfxml_link_cluster(void){
        surfxml_call_cb_functions(STag_surfxml_link_cb_list);
 }
 void ETag_surfxml_link(void){
        surfxml_call_cb_functions(ETag_surfxml_link_cb_list);
        xbt_free(struct_lnk->V_link_id);
-       struct_lnk->V_link_bandwidth = 0;
-       struct_lnk->V_link_bandwidth_file = NULL;
-       struct_lnk->V_link_latency = 0;
-       struct_lnk->V_link_latency_file = NULL;
-       struct_lnk->V_link_state = SURF_RESOURCE_ON;
-       struct_lnk->V_link_state_file = NULL;
-       struct_lnk->V_link_sharing_policy = 0;
        xbt_free(struct_lnk);
 }
 
@@ -475,6 +465,8 @@ void STag_surfxml_trace_connect(void){
        surfxml_call_cb_functions(STag_surfxml_trace_connect_cb_list);
 }
 void STag_surfxml_AS(void){
+  surf_parse_models_setup(); /* ensure that the models are created after the last <config> tag. See comment in simgrid.dtd */
+
        surfxml_call_cb_functions(STag_surfxml_AS_cb_list);
 }
 void STag_surfxml_ASroute(void){