XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_parse, surf, "Logging specific to the SURF parsing module");
std::string surf_parsed_filename; // Currently parsed file (for the error messages)
-std::vector<simgrid::kernel::resource::LinkImpl*>
- parsed_link_list; /* temporary store of current link list of a route */
+std::vector<simgrid::s4u::LinkInRoute> parsed_link_list; /* temporary store of current link list of a route */
/* Helping functions */
void surf_parse_assert(bool cond, const std::string& msg)
property_sets.emplace_back();
host.id = A_surfxml_host_id;
- host.speed_per_pstate =
- xbt_parse_get_all_speeds(surf_parsed_filename, surf_parse_lineno, A_surfxml_host_speed, "speed of host", host.id);
+ host.speed_per_pstate = xbt_parse_get_all_speeds(surf_parsed_filename, surf_parse_lineno, A_surfxml_host_speed,
+ "speed of host " + host.id);
XBT_DEBUG("pstate: %s", A_surfxml_host_pstate);
host.core_amount = surf_parse_get_int(A_surfxml_host_core);
disk.id = A_surfxml_disk_id;
disk.read_bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_disk_read___bw,
- "read_bw of disk ", disk.id);
+ "read_bw of disk " + disk.id);
disk.write_bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_disk_write___bw,
- "write_bw of disk ", disk.id);
+ "write_bw of disk " + disk.id);
sg_platf_new_disk(&disk);
}
cluster.suffix = A_surfxml_cluster_suffix;
explodesRadical(A_surfxml_cluster_radical, &cluster.radicals);
- cluster.speeds = xbt_parse_get_all_speeds(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_speed,
- "speed of cluster", cluster.id);
+ cluster.speeds = xbt_parse_get_all_speeds(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_speed,
+ "speed of cluster " + cluster.id);
cluster.core_amount = surf_parse_get_int(A_surfxml_cluster_core);
- cluster.bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_bw, "bw of cluster",
- cluster.id);
- cluster.lat =
- xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_lat, "lat of cluster", cluster.id);
+ cluster.bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_bw,
+ "bw of cluster " + cluster.id);
+ cluster.lat = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_lat,
+ "lat of cluster " + cluster.id);
if(strcmp(A_surfxml_cluster_bb___bw,""))
cluster.bb_bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_bb___bw,
- "bb_bw of cluster", cluster.id);
+ "bb_bw of cluster " + cluster.id);
if(strcmp(A_surfxml_cluster_bb___lat,""))
cluster.bb_lat = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_bb___lat,
- "bb_lat of cluster", cluster.id);
+ "bb_lat of cluster " + cluster.id);
if(strcmp(A_surfxml_cluster_limiter___link,""))
cluster.limiter_link =
xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_limiter___link,
- "limiter_link of cluster", cluster.id);
+ "limiter_link of cluster " + cluster.id);
if(strcmp(A_surfxml_cluster_loopback___bw,""))
- cluster.loopback_bw = xbt_parse_get_bandwidth(
- surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_loopback___bw, "loopback_bw of cluster", cluster.id);
+ cluster.loopback_bw =
+ xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_loopback___bw,
+ "loopback_bw of cluster " + cluster.id);
if(strcmp(A_surfxml_cluster_loopback___lat,""))
cluster.loopback_lat = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cluster_loopback___lat,
- "loopback_lat of cluster", cluster.id);
+ "loopback_lat of cluster " + cluster.id);
switch(AX_surfxml_cluster_topology){
case A_surfxml_cluster_topology_FLAT:
surf_parse_error(std::string("Invalid bb sharing policy in cluster ") + cluster.id);
}
- sg_platf_new_cluster(&cluster);
+ sg_platf_new_tag_cluster(&cluster);
}
void STag_surfxml_cluster(){
cabinet.prefix = A_surfxml_cabinet_prefix;
cabinet.suffix = A_surfxml_cabinet_suffix;
cabinet.speed = xbt_parse_get_speed(surf_parsed_filename, surf_parse_lineno, A_surfxml_cabinet_speed,
- "speed of cabinet", cabinet.id.c_str());
- cabinet.bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cabinet_bw, "bw of cabinet",
- cabinet.id.c_str());
- cabinet.lat = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cabinet_lat, "lat of cabinet",
- cabinet.id.c_str());
+ "speed of cabinet " + cabinet.id);
+ cabinet.bw = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_cabinet_bw,
+ "bw of cabinet " + cabinet.id);
+ cabinet.lat = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_cabinet_lat,
+ "lat of cabinet " + cabinet.id);
explodesRadical(A_surfxml_cabinet_radical, &cabinet.radicals);
sg_platf_new_cabinet(&cabinet);
simgrid::kernel::routing::PeerCreationArgs peer;
peer.id = std::string(A_surfxml_peer_id);
- peer.speed = xbt_parse_get_speed(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_speed, "speed of peer",
- peer.id.c_str());
- peer.bw_in = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_bw___in, "bw_in of peer",
- peer.id.c_str());
- peer.bw_out = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_bw___out,
- "bw_out of peer", peer.id.c_str());
+ peer.speed =
+ xbt_parse_get_speed(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_speed, "speed of peer " + peer.id);
+ peer.bw_in = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_bw___in,
+ "bw_in of peer " + peer.id);
+ peer.bw_out = xbt_parse_get_bandwidth(surf_parsed_filename, surf_parse_lineno, A_surfxml_peer_bw___out,
+ "bw_out of peer " + peer.id);
peer.coord = A_surfxml_peer_coordinates;
peer.speed_trace = nullptr;
if (A_surfxml_peer_availability___file[0] != '\0') {
link.id = std::string(A_surfxml_link_id);
link.bandwidths = xbt_parse_get_bandwidths(surf_parsed_filename, surf_parse_lineno, A_surfxml_link_bandwidth,
- "bandwidth of link", link.id.c_str());
+ "bandwidth of link " + link.id);
link.bandwidth_trace = A_surfxml_link_bandwidth___file[0]
? simgrid::kernel::profile::Profile::from_file(A_surfxml_link_bandwidth___file)
: nullptr;
- link.latency = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_link_latency, "latency of link",
- link.id.c_str());
+ link.latency =
+ xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_link_latency, "latency of link " + link.id);
link.latency_trace = A_surfxml_link_latency___file[0]
? simgrid::kernel::profile::Profile::from_file(A_surfxml_link_latency___file)
: nullptr;
void STag_surfxml_link___ctn()
{
- simgrid::kernel::resource::LinkImpl* link = nullptr;
+ const simgrid::s4u::Link* link;
+ simgrid::s4u::LinkInRoute::Direction direction = simgrid::s4u::LinkInRoute::Direction::NONE;
switch (A_surfxml_link___ctn_direction) {
case AU_surfxml_link___ctn_direction:
case A_surfxml_link___ctn_direction_NONE:
- link = simgrid::s4u::Link::by_name(std::string(A_surfxml_link___ctn_id))->get_impl();
+ link = simgrid::s4u::Link::by_name(std::string(A_surfxml_link___ctn_id));
break;
case A_surfxml_link___ctn_direction_UP:
- link = simgrid::s4u::Link::by_name(std::string(A_surfxml_link___ctn_id) + "_UP")->get_impl();
+ link = simgrid::s4u::SplitDuplexLink::by_name(std::string(A_surfxml_link___ctn_id));
+ direction = simgrid::s4u::LinkInRoute::Direction::UP;
break;
case A_surfxml_link___ctn_direction_DOWN:
- link = simgrid::s4u::Link::by_name(std::string(A_surfxml_link___ctn_id) + "_DOWN")->get_impl();
+ link = simgrid::s4u::SplitDuplexLink::by_name(std::string(A_surfxml_link___ctn_id));
+ direction = simgrid::s4u::LinkInRoute::Direction::DOWN;
break;
default:
surf_parse_error(std::string("Invalid direction for link ") + A_surfxml_link___ctn_id);
dirname = "";
}
surf_parse_assert(link != nullptr, std::string("No such link: '") + A_surfxml_link___ctn_id + "'" + dirname);
- parsed_link_list.push_back(link);
+ parsed_link_list.emplace_back(link, direction);
}
-void ETag_surfxml_backbone(){
- simgrid::kernel::routing::LinkCreationArgs link;
+void ETag_surfxml_backbone()
+{
+ auto link = std::make_unique<simgrid::kernel::routing::LinkCreationArgs>();
- link.id = std::string(A_surfxml_backbone_id);
- link.bandwidths.push_back(xbt_parse_get_bandwidth(
- surf_parsed_filename, surf_parse_lineno, A_surfxml_backbone_bandwidth, "bandwidth of backbone", link.id.c_str()));
- link.latency = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_backbone_latency,
- "latency of backbone", link.id.c_str());
- link.policy = simgrid::s4u::Link::SharingPolicy::SHARED;
+ link->id = std::string(A_surfxml_backbone_id);
+ link->bandwidths.push_back(xbt_parse_get_bandwidth(
+ surf_parsed_filename, surf_parse_lineno, A_surfxml_backbone_bandwidth, "bandwidth of backbone " + link->id));
+ link->latency = xbt_parse_get_time(surf_parsed_filename, surf_parse_lineno, A_surfxml_backbone_latency,
+ "latency of backbone " + link->id);
+ link->policy = simgrid::s4u::Link::SharingPolicy::SHARED;
- sg_platf_new_link(&link);
- routing_cluster_add_backbone(simgrid::s4u::Link::by_name(std::string(A_surfxml_backbone_id))->get_impl());
+ routing_cluster_add_backbone(std::move(link));
}
void STag_surfxml_route(){
route.link_list.swap(parsed_link_list);
- sg_platf_new_bypassRoute(&route);
+ sg_platf_new_bypass_route(&route);
}
void ETag_surfxml_bypassASroute()
ASroute.gw_src = sg_netpoint_by_name_or_null(A_surfxml_bypassZoneRoute_gw___src);
ASroute.gw_dst = sg_netpoint_by_name_or_null(A_surfxml_bypassZoneRoute_gw___dst);
- sg_platf_new_bypassRoute(&ASroute);
+ sg_platf_new_bypass_route(&ASroute);
}
void ETag_surfxml_trace(){
simgrid::kernel::routing::ZoneCreationArgs zone;
zone.id = A_surfxml_zone_id;
zone.routing = A_surfxml_zone_routing;
- sg_platf_new_Zone_begin(&zone);
+ sg_platf_new_zone_begin(&zone);
}
void ETag_surfxml_zone()
{
- sg_platf_new_Zone_set_properties(property_sets.back());
+ sg_platf_new_zone_set_properties(property_sets.back());
property_sets.pop_back();
-
- sg_platf_new_Zone_seal();
+ sg_platf_new_zone_seal();
}
void STag_surfxml_config()
keys.push_back(kv.first);
}
std::sort(keys.begin(), keys.end());
- for (std::string key : keys) {
+ for (const std::string& key : keys) {
if (simgrid::config::is_default(key.c_str())) {
std::string cfg = key + ":" + current_property_set.at(key);
simgrid::config::set_parse(cfg);