-/* Copyright (c) 2006-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
return count;
}
-s4u::Link* NetZoneImpl::create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
- s4u::Link::SharingPolicy policy,
- const std::unordered_map<std::string, std::string>* props)
+s4u::Link* NetZoneImpl::create_link(const std::string& name, const std::vector<double>& bandwidths,
+ s4u::Link::SharingPolicy policy)
{
- static double last_warned_latency = sg_surf_precision;
- if (latency != 0.0 && latency < last_warned_latency) {
- XBT_WARN("Latency for link %s is smaller than surf/precision (%g < %g)."
- " For more accuracy, consider setting \"--cfg=surf/precision:%g\".",
- name.c_str(), latency, sg_surf_precision, latency);
- last_warned_latency = latency;
- }
-
- auto* l = surf_network_model->create_link(name, bandwidths, latency, policy);
-
- if (props)
- l->set_properties(*props);
+ auto* l = surf_network_model->create_link(name, bandwidths, policy);
return l->get_iface();
}
+
s4u::Host* NetZoneImpl::create_host(const std::string& name, const std::vector<double>& speed_per_pstate,
- int coreAmount, const std::unordered_map<std::string, std::string>* props)
+ int core_amount)
{
- auto* res = new s4u::Host(name);
-
if (hierarchy_ == RoutingMode::unset)
hierarchy_ = RoutingMode::base;
- res->set_netpoint(new NetPoint(name, NetPoint::Type::Host, this));
-
- surf_cpu_model_pm->create_cpu(res, speed_per_pstate, coreAmount);
+ auto* res = (new s4u::Host(name))->set_netpoint(new NetPoint(name, NetPoint::Type::Host, this));
- if (props != nullptr)
- res->set_properties(*props);
-
- s4u::Host::on_creation(*res); // notify the signal
+ surf_cpu_model_pm->create_cpu(res, speed_per_pstate, core_amount);
return res;
}
/* (3) Search for a bypass making the path up to the ancestor useless */
const BypassRoute* bypassedRoute = nullptr;
std::pair<kernel::routing::NetPoint*, kernel::routing::NetPoint*> key;
- for (int max = 0; max <= max_index; max++) {
- for (int i = 0; i < max; i++) {
+ for (int max = 0; max <= max_index && not bypassedRoute; max++) {
+ for (int i = 0; i < max && not bypassedRoute; i++) {
if (i <= max_index_src && max <= max_index_dst) {
key = {path_src.at(i)->netpoint_, path_dst.at(max)->netpoint_};
auto bpr = bypass_routes_.find(key);
if (bpr != bypass_routes_.end()) {
bypassedRoute = bpr->second;
- break;
}
}
- if (max <= max_index_src && i <= max_index_dst) {
+ if (not bypassedRoute && max <= max_index_src && i <= max_index_dst) {
key = {path_src.at(max)->netpoint_, path_dst.at(i)->netpoint_};
auto bpr = bypass_routes_.find(key);
if (bpr != bypass_routes_.end()) {
bypassedRoute = bpr->second;
- break;
}
}
}
- if (bypassedRoute)
- break;
-
- if (max <= max_index_src && max <= max_index_dst) {
+ if (not bypassedRoute && max <= max_index_src && max <= max_index_dst) {
key = {path_src.at(max)->netpoint_, path_dst.at(max)->netpoint_};
auto bpr = bypass_routes_.find(key);
if (bpr != bypass_routes_.end()) {
bypassedRoute = bpr->second;
- break;
}
}
}