X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a1958aceb8f70618dac966308391b311912a15f8..9abea5188b7bc67c822270a2cb300c777d3b2727:/src/kernel/resource/NetworkModelFactors.cpp diff --git a/src/kernel/resource/NetworkModelFactors.cpp b/src/kernel/resource/NetworkModelFactors.cpp index 52e8ba079a..3e9f8cf278 100644 --- a/src/kernel/resource/NetworkModelFactors.cpp +++ b/src/kernel/resource/NetworkModelFactors.cpp @@ -1,11 +1,10 @@ -/* Copyright (c) 2013-2022. 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. */ #include "src/kernel/resource/NetworkModelFactors.hpp" -#include "simgrid/sg_config.hpp" -#include "src/kernel/resource/FactorSet.hpp" +#include "src/simgrid/sg_config.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(res_network); @@ -14,9 +13,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(res_network); *********/ namespace simgrid::kernel::resource { -static FactorSet cfg_latency_factor("network/latency-factor"); -static FactorSet cfg_bandwidth_factor("network/bandwidth-factor"); - config::Flag cfg_latency_factor_str( "network/latency-factor", std::initializer_list{"smpi/lat-factor"}, "Correction factor to apply to the provided latency (default value overridden by network model)", "1.0"); @@ -24,8 +20,21 @@ static config::Flag cfg_bandwidth_factor_str( "network/bandwidth-factor", std::initializer_list{"smpi/bw-factor"}, "Correction factor to apply to the provided bandwidth (default value overridden by network model)", "1.0"); -#if 0 -double NetworkModelFactors::get_latency_factor() +FactorSet NetworkModelFactors::cfg_latency_factor("network/latency-factor"); +FactorSet NetworkModelFactors::cfg_bandwidth_factor("network/bandwidth-factor"); + +double NetworkModelFactors::get_bandwidth_factor() const +{ + xbt_assert(not bw_factor_cb_, + "Cannot access the global bandwidth factor since a callback is used. Please go for the advanced API."); + + if (not cfg_bandwidth_factor.is_initialized()) + cfg_bandwidth_factor.parse(cfg_bandwidth_factor_str.get()); + + return cfg_bandwidth_factor(0); +} + +double NetworkModelFactors::get_latency_factor() const { xbt_assert(not lat_factor_cb_, "Cannot access the global latency factor since a callback is used. Please go for the advanced API."); @@ -38,7 +47,7 @@ double NetworkModelFactors::get_latency_factor() double NetworkModelFactors::get_latency_factor(double size, const s4u::Host* src, const s4u::Host* dst, const std::vector& links, - const std::unordered_set& netzones) + const std::unordered_set& netzones) const { if (lat_factor_cb_) return lat_factor_cb_(size, src, dst, links, netzones); @@ -48,20 +57,10 @@ double NetworkModelFactors::get_latency_factor(double size, const s4u::Host* src return cfg_latency_factor(size); } -double NetworkModelFactors::get_bandwidth_factor() -{ - xbt_assert(not bw_factor_cb_, - "Cannot access the global bandwidth factor since a callback is used. Please go for the advanced API."); - - if (not cfg_bandwidth_factor.is_initialized()) - cfg_bandwidth_factor.parse(cfg_bandwidth_factor_str.get()); - - return cfg_bandwidth_factor(0); -} double NetworkModelFactors::get_bandwidth_factor(double size, const s4u::Host* src, const s4u::Host* dst, const std::vector& links, - const std::unordered_set& netzones) + const std::unordered_set& netzones) const { if (bw_factor_cb_) return bw_factor_cb_(size, src, dst, links, netzones); @@ -71,22 +70,6 @@ double NetworkModelFactors::get_bandwidth_factor(double size, const s4u::Host* s return cfg_bandwidth_factor(size); } -#endif - -double NetworkModelFactors::get_latency_factor(double size) -{ - if (not cfg_latency_factor.is_initialized()) // lazy initiaization to avoid initialization fiasco - cfg_latency_factor.parse(cfg_latency_factor_str.get()); - - return cfg_latency_factor(size); -} -double NetworkModelFactors::get_bandwidth_factor(double size) -{ - if (not cfg_bandwidth_factor.is_initialized()) - cfg_bandwidth_factor.parse(cfg_bandwidth_factor_str.get()); - - return cfg_bandwidth_factor(size); -} void NetworkModelFactors::set_lat_factor_cb(const std::function& cb) {