From: Martin Quinson Date: Tue, 9 Jul 2019 18:02:42 +0000 (+0200) Subject: fix NS3 build + avoid vector copies X-Git-Tag: v3.24~359 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/957da2691fc483ae05228fc6ef815af5944452af?ds=sidebyside fix NS3 build + avoid vector copies --- diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index d606b2a30b..c99333ff4e 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -90,7 +90,7 @@ NetworkCm02Model::NetworkCm02Model(kernel::lmm::System* (*make_new_lmm_system)(b s4u::Link::SharingPolicy::FATPIPE); } -LinkImpl* NetworkCm02Model::create_link(const std::string& name, std::vector bandwidths, double latency, +LinkImpl* NetworkCm02Model::create_link(const std::string& name, const std::vector& bandwidths, double latency, s4u::Link::SharingPolicy policy) { if (policy == s4u::Link::SharingPolicy::WIFI) { diff --git a/src/surf/network_cm02.hpp b/src/surf/network_cm02.hpp index 235b7f06b0..8cd453e390 100644 --- a/src/surf/network_cm02.hpp +++ b/src/surf/network_cm02.hpp @@ -32,7 +32,7 @@ class NetworkCm02Model : public NetworkModel { public: explicit NetworkCm02Model(lmm::System* (*make_new_sys)(bool) = &lmm::make_new_maxmin_system); virtual ~NetworkCm02Model() = default; - LinkImpl* create_link(const std::string& name, std::vector bandwidths, double latency, + LinkImpl* create_link(const std::string& name, const std::vector& bandwidths, double latency, s4u::Link::SharingPolicy policy) override; void update_actions_state_lazy(double now, double delta) override; void update_actions_state_full(double now, double delta) override; diff --git a/src/surf/network_constant.cpp b/src/surf/network_constant.cpp index 84d70ad419..9227e572a6 100644 --- a/src/surf/network_constant.cpp +++ b/src/surf/network_constant.cpp @@ -27,7 +27,7 @@ NetworkConstantModel::NetworkConstantModel() : NetworkModel(Model::UpdateAlgo::F all_existing_models.push_back(this); } -LinkImpl* NetworkConstantModel::create_link(const std::string& name, std::vector /*bandwidth*/, +LinkImpl* NetworkConstantModel::create_link(const std::string& name, const std::vector& /*bandwidth*/, double /*latency*/, s4u::Link::SharingPolicy) { diff --git a/src/surf/network_constant.hpp b/src/surf/network_constant.hpp index daa5ff76c7..624b34bd30 100644 --- a/src/surf/network_constant.hpp +++ b/src/surf/network_constant.hpp @@ -21,7 +21,7 @@ public: double next_occuring_event(double now) override; void update_actions_state(double now, double delta) override; - LinkImpl* create_link(const std::string& name, std::vector bws, double lat, + LinkImpl* create_link(const std::string& name, const std::vector& bws, double lat, s4u::Link::SharingPolicy policy) override; }; diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index d86a5968fd..d112d2be2e 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -48,7 +48,7 @@ public: * @param latency The initial latency of the Link in seconds * @param policy The sharing policy of the Link */ - virtual LinkImpl* create_link(const std::string& name, std::vector bandwidths, double latency, + virtual LinkImpl* create_link(const std::string& name, const std::vector& bandwidths, double latency, s4u::Link::SharingPolicy policy) = 0; /** diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index c6e2ccef03..211586febd 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -173,7 +173,7 @@ NetworkNS3Model::~NetworkNS3Model() { IPV4addr.clear(); } -LinkImpl* NetworkNS3Model::create_link(const std::string& name, std::vector bandwidths, double latency, +LinkImpl* NetworkNS3Model::create_link(const std::string& name, const std::vector& bandwidths, double latency, s4u::Link::SharingPolicy policy) { xbt_assert(bandwidths.size() == 1, "Non WIFI links must use only 1 bandwidth."); diff --git a/src/surf/network_ns3.hpp b/src/surf/network_ns3.hpp index ed65cac5a8..b565c976a6 100644 --- a/src/surf/network_ns3.hpp +++ b/src/surf/network_ns3.hpp @@ -18,7 +18,7 @@ class NetworkNS3Model : public NetworkModel { public: NetworkNS3Model(); ~NetworkNS3Model(); - LinkImpl* create_link(const std::string& name, double bandwidth, double latency, + LinkImpl* create_link(const std::string& name, const std::vector& bandwidth, double latency, s4u::Link::SharingPolicy policy) override; Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override; double next_occuring_event(double now) override; diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index dc1ec5815c..85c2bc325b 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -57,7 +57,7 @@ NetworkL07Model::NetworkL07Model(HostL07Model* hmodel, kernel::lmm::System* sys) : NetworkModel(Model::UpdateAlgo::FULL), hostModel_(hmodel) { set_maxmin_system(sys); - loopback_ = NetworkL07Model::create_link("__loopback__", std::vector(1, 498000000), 0.000015, + loopback_ = NetworkL07Model::create_link("__loopback__", std::vector{498000000}, 0.000015, s4u::Link::SharingPolicy::FATPIPE); } @@ -225,7 +225,7 @@ kernel::resource::Cpu* CpuL07Model::create_cpu(s4u::Host* host, const std::vecto return new CpuL07(this, host, speed_per_pstate, core); } -kernel::resource::LinkImpl* NetworkL07Model::create_link(const std::string& name, std::vector bandwidths, +kernel::resource::LinkImpl* NetworkL07Model::create_link(const std::string& name, const std::vector& bandwidths, double latency, s4u::Link::SharingPolicy policy) { xbt_assert(bandwidths.size() == 1, "Non WIFI link must have only 1 bandwidth."); diff --git a/src/surf/ptask_L07.hpp b/src/surf/ptask_L07.hpp index 83f62f3332..c96ca41bdf 100644 --- a/src/surf/ptask_L07.hpp +++ b/src/surf/ptask_L07.hpp @@ -63,8 +63,8 @@ public: NetworkL07Model(const NetworkL07Model&) = delete; NetworkL07Model& operator=(const NetworkL07Model&) = delete; ~NetworkL07Model(); - kernel::resource::LinkImpl* create_link(const std::string& name, std::vector bandwidths, double latency, - s4u::Link::SharingPolicy policy) override; + kernel::resource::LinkImpl* create_link(const std::string& name, const std::vector& bandwidths, + double latency, s4u::Link::SharingPolicy policy) override; kernel::resource::Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override;