X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/982cab33412abf91552a74e5cb567164d4a9a647..1ca34b76da924ef9743ce07316d18e69ba45374f:/src/surf/xml/surfxml_sax_cb.cpp diff --git a/src/surf/xml/surfxml_sax_cb.cpp b/src/surf/xml/surfxml_sax_cb.cpp index 056620d6d9..9812300f5d 100644 --- a/src/surf/xml/surfxml_sax_cb.cpp +++ b/src/surf/xml/surfxml_sax_cb.cpp @@ -462,8 +462,8 @@ void ETag_surfxml_host(void) { XBT_DEBUG("pstate: %s", A_surfxml_host_pstate); host.core_amount = surf_parse_get_int(A_surfxml_host_core); - host.speed_trace = A_surfxml_host_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_availability___file) : NULL; - host.state_trace = A_surfxml_host_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_state___file) : NULL; + host.speed_trace = A_surfxml_host_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_availability___file) : nullptr; + host.state_trace = A_surfxml_host_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_host_state___file) : nullptr; host.pstate = surf_parse_get_int(A_surfxml_host_pstate); host.coord = A_surfxml_host_coordinates; @@ -511,7 +511,7 @@ void ETag_surfxml_cluster(void){ if(strcmp(A_surfxml_cluster_bb___lat,"")) cluster.bb_lat = surf_parse_get_time(A_surfxml_cluster_bb___lat, "bb_lat of cluster", cluster.id); if(strcmp(A_surfxml_cluster_limiter___link,"")) - cluster.limiter_link = surf_parse_get_double(A_surfxml_cluster_limiter___link); + cluster.limiter_link = surf_parse_get_bandwidth(A_surfxml_cluster_limiter___link, "limiter_link of cluster", cluster.id); if(strcmp(A_surfxml_cluster_loopback___bw,"")) cluster.loopback_bw = surf_parse_get_bandwidth(A_surfxml_cluster_loopback___bw, "loopback_bw of cluster", cluster.id); if(strcmp(A_surfxml_cluster_loopback___lat,"")) @@ -527,6 +527,9 @@ void ETag_surfxml_cluster(void){ case A_surfxml_cluster_topology_FAT___TREE: cluster.topology = SURF_CLUSTER_FAT_TREE; break; + case A_surfxml_cluster_topology_DRAGONFLY: + cluster.topology= SURF_CLUSTER_DRAGONFLY ; + break; default: surf_parse_error("Invalid cluster topology for cluster %s", cluster.id); @@ -598,8 +601,8 @@ void STag_surfxml_peer(void){ peer.bw_out = surf_parse_get_bandwidth(A_surfxml_peer_bw___out, "bw_out of peer", peer.id); peer.lat = surf_parse_get_time(A_surfxml_peer_lat, "lat of peer", peer.id); peer.coord = A_surfxml_peer_coordinates; - peer.availability_trace = A_surfxml_peer_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_availability___file) : NULL; - peer.state_trace = A_surfxml_peer_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_state___file) : NULL; + peer.availability_trace = A_surfxml_peer_availability___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_availability___file) : nullptr; + peer.state_trace = A_surfxml_peer_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_peer_state___file) : nullptr; sg_platf_new_peer(&peer); } @@ -616,10 +619,10 @@ void ETag_surfxml_link(void){ link.properties = current_property_set; link.id = A_surfxml_link_id; link.bandwidth = surf_parse_get_bandwidth(A_surfxml_link_bandwidth, "bandwidth of link", link.id); - link.bandwidth_trace = A_surfxml_link_bandwidth___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_bandwidth___file) : NULL; + link.bandwidth_trace = A_surfxml_link_bandwidth___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_bandwidth___file) : nullptr; link.latency = surf_parse_get_time(A_surfxml_link_latency, "latency of link", link.id); - link.latency_trace = A_surfxml_link_latency___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_latency___file) : NULL; - link.state_trace = A_surfxml_link_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_state___file):NULL; + link.latency_trace = A_surfxml_link_latency___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_latency___file) : nullptr; + link.state_trace = A_surfxml_link_state___file[0] ? tmgr_trace_new_from_file(A_surfxml_link_state___file):nullptr; switch (A_surfxml_link_sharing___policy) { case A_surfxml_link_sharing___policy_SHARED: @@ -724,8 +727,9 @@ void ETag_surfxml_route(void){ s_sg_platf_route_cbarg_t route; memset(&route,0,sizeof(route)); - route.src = A_surfxml_route_src; - route.dst = A_surfxml_route_dst; + + route.src = sg_netcard_by_name_or_null(A_surfxml_route_src); // tested to not be nullptr in start tag + route.dst = sg_netcard_by_name_or_null(A_surfxml_route_dst); // tested to not be nullptr in start tag route.gw_src = nullptr; route.gw_dst = nullptr; route.link_list = new std::vector(); @@ -739,6 +743,7 @@ void ETag_surfxml_route(void){ } sg_platf_new_route(&route); + delete route.link_list; xbt_dynar_free(&parsed_link_list); } @@ -746,18 +751,11 @@ void ETag_surfxml_ASroute(void){ s_sg_platf_route_cbarg_t ASroute; memset(&ASroute,0,sizeof(ASroute)); - ASroute.src = A_surfxml_ASroute_src; - ASroute.dst = A_surfxml_ASroute_dst; - - ASroute.gw_src = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___src); - ASroute.gw_dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___dst); + ASroute.src = sg_netcard_by_name_or_null(A_surfxml_ASroute_src); // tested to not be nullptr in start tag + ASroute.dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_dst); // tested to not be nullptr in start tag - if (A_surfxml_ASroute_gw___src && !ASroute.gw_src) - surf_parse_error("gw_src=\"%s\" not found for ASroute from \"%s\" to \"%s\"", - A_surfxml_ASroute_gw___src, ASroute.src, ASroute.dst); - if (A_surfxml_ASroute_gw___dst && !ASroute.gw_dst) - surf_parse_error("gw_dst=\"%s\" not found for ASroute from \"%s\" to \"%s\"", - A_surfxml_ASroute_gw___dst, ASroute.src, ASroute.dst); + ASroute.gw_src = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___src); // tested to not be nullptr in start tag + ASroute.gw_dst = sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___dst); // tested to not be nullptr in start tag ASroute.link_list = new std::vector(); @@ -780,14 +778,15 @@ void ETag_surfxml_ASroute(void){ } sg_platf_new_route(&ASroute); + delete ASroute.link_list; } void ETag_surfxml_bypassRoute(void){ s_sg_platf_route_cbarg_t route; memset(&route,0,sizeof(route)); - route.src = A_surfxml_bypassRoute_src; - route.dst = A_surfxml_bypassRoute_dst; + route.src = sg_netcard_by_name_or_null(A_surfxml_bypassRoute_src); // tested to not be nullptr in start tag + route.dst = sg_netcard_by_name_or_null(A_surfxml_bypassRoute_dst); // tested to not be nullptr in start tag route.gw_src = nullptr; route.gw_dst = nullptr; route.symmetrical = false; @@ -808,9 +807,9 @@ void ETag_surfxml_bypassASroute(void){ s_sg_platf_route_cbarg_t ASroute; memset(&ASroute,0,sizeof(ASroute)); - ASroute.src = A_surfxml_bypassASroute_src; - ASroute.dst = A_surfxml_bypassASroute_dst; - ASroute.link_list = new std::vector(); + ASroute.src = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_src); + ASroute.dst = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_dst); + ASroute.link_list = new std::vector(); unsigned int cpt; char *link_name; xbt_dynar_foreach(parsed_link_list, cpt, link_name) { @@ -903,8 +902,8 @@ void ETag_surfxml_config(void){ char *cfg; xbt_dict_foreach(current_property_set, cursor, key, elem) { cfg = bprintf("%s:%s",key,elem); - if(xbt_cfg_is_default_value(_sg_cfg_set, key)) - xbt_cfg_set_parse(_sg_cfg_set, cfg); + if(xbt_cfg_is_default_value(key)) + xbt_cfg_set_parse(cfg); else XBT_INFO("The custom configuration '%s' is already defined by user!",key); free(cfg); @@ -949,6 +948,12 @@ void ETag_surfxml_process(void){ } sg_platf_new_process(&process); + + for (int i = 0; i != argc; ++i) + xbt_free(argv[i]); + xbt_free(argv); + argv = nullptr; + current_property_set = nullptr; } @@ -984,7 +989,7 @@ void ETag_surfxml_model___prop(void){} void surf_parse_open(const char *file) { - xbt_assert(file, "Cannot parse the NULL file. Bypassing the parser is strongly deprecated nowadays."); + xbt_assert(file, "Cannot parse the nullptr file. Bypassing the parser is strongly deprecated nowadays."); if (!surf_input_buffer_stack) surf_input_buffer_stack = xbt_dynar_new(sizeof(YY_BUFFER_STATE), nullptr);