X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/76d4849864c227687e17bdd93c5b1338e9b4cb50..76a0df97ebdbc98eb6700edf89c7fea3d9d60e24:/src/kernel/resource/StandardLinkImpl.cpp diff --git a/src/kernel/resource/StandardLinkImpl.cpp b/src/kernel/resource/StandardLinkImpl.cpp index 4ecfa60efd..6876a4b0bd 100644 --- a/src/kernel/resource/StandardLinkImpl.cpp +++ b/src/kernel/resource/StandardLinkImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2013-2023. 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. */ @@ -15,19 +15,21 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(res_network); * Model * *********/ -namespace simgrid { -namespace kernel { -namespace resource { +namespace simgrid::kernel::resource { StandardLinkImpl::StandardLinkImpl(const std::string& name) : LinkImpl(name), piface_(this) { if (name != "__loopback__") xbt_assert(not s4u::Link::by_name_or_null(name), "Link '%s' declared several times in the platform.", name.c_str()); - s4u::Engine::get_instance()->link_register(name, &piface_); XBT_DEBUG("Create link '%s'", name.c_str()); } +void StandardLinkImpl::Deleter::operator()(resource::StandardLinkImpl* link) const +{ + link->destroy(); +} + /** @brief Fire the required callbacks and destroy the object * * Don't delete directly a Link, call l->destroy() instead. @@ -35,13 +37,14 @@ StandardLinkImpl::StandardLinkImpl(const std::string& name) : LinkImpl(name), pi void StandardLinkImpl::destroy() { s4u::Link::on_destruction(piface_); - s4u::Engine::get_instance()->link_unregister(get_name()); delete this; } constexpr kernel::lmm::Constraint::SharingPolicy to_maxmin_policy(s4u::Link::SharingPolicy policy) { switch (policy) { + case s4u::Link::SharingPolicy::WIFI: + return kernel::lmm::Constraint::SharingPolicy::WIFI; case s4u::Link::SharingPolicy::NONLINEAR: return kernel::lmm::Constraint::SharingPolicy::NONLINEAR; case s4u::Link::SharingPolicy::FATPIPE: @@ -59,15 +62,21 @@ void StandardLinkImpl::set_sharing_policy(s4u::Link::SharingPolicy policy, const void StandardLinkImpl::latency_check(double latency) const { - static double last_warned_latency = sg_surf_precision; + static double last_warned_latency = sg_precision_timing; 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\".", - get_cname(), latency, sg_surf_precision, latency); + get_cname(), latency, sg_precision_timing, latency); last_warned_latency = latency; } } +StandardLinkImpl* StandardLinkImpl::set_englobing_zone(routing::NetZoneImpl* englobing_zone) +{ + englobing_zone_ = englobing_zone; + return this; +} + void StandardLinkImpl::turn_on() { if (not is_on()) { @@ -131,7 +140,9 @@ void StandardLinkImpl::set_concurrency_limit(int limit) const } get_constraint()->set_concurrency_limit(limit); } +int StandardLinkImpl::get_concurrency_limit() const +{ + return get_constraint()->get_concurrency_limit(); +} -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource