Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix NS3 build + avoid vector copies
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 9 Jul 2019 18:02:42 +0000 (20:02 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Tue, 9 Jul 2019 18:02:42 +0000 (20:02 +0200)
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_constant.cpp
src/surf/network_constant.hpp
src/surf/network_interface.hpp
src/surf/network_ns3.cpp
src/surf/network_ns3.hpp
src/surf/ptask_L07.cpp
src/surf/ptask_L07.hpp

index d606b2a..c99333f 100644 (file)
@@ -90,7 +90,7 @@ NetworkCm02Model::NetworkCm02Model(kernel::lmm::System* (*make_new_lmm_system)(b
                                             s4u::Link::SharingPolicy::FATPIPE);
 }
 
                                             s4u::Link::SharingPolicy::FATPIPE);
 }
 
-LinkImpl* NetworkCm02Model::create_link(const std::string& name, std::vector<double> bandwidths, double latency,
+LinkImpl* NetworkCm02Model::create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
                                         s4u::Link::SharingPolicy policy)
 {
   if (policy == s4u::Link::SharingPolicy::WIFI) {
                                         s4u::Link::SharingPolicy policy)
 {
   if (policy == s4u::Link::SharingPolicy::WIFI) {
index 235b7f0..8cd453e 100644 (file)
@@ -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;
 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<double> bandwidths, double latency,
+  LinkImpl* create_link(const std::string& name, const std::vector<double>& 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;
                         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;
index 84d70ad..9227e57 100644 (file)
@@ -27,7 +27,7 @@ NetworkConstantModel::NetworkConstantModel() : NetworkModel(Model::UpdateAlgo::F
   all_existing_models.push_back(this);
 }
 
   all_existing_models.push_back(this);
 }
 
-LinkImpl* NetworkConstantModel::create_link(const std::string& name, std::vector<double> /*bandwidth*/,
+LinkImpl* NetworkConstantModel::create_link(const std::string& name, const std::vector<double>& /*bandwidth*/,
                                             double /*latency*/, s4u::Link::SharingPolicy)
 {
 
                                             double /*latency*/, s4u::Link::SharingPolicy)
 {
 
index daa5ff7..624b34b 100644 (file)
@@ -21,7 +21,7 @@ public:
   double next_occuring_event(double now) override;
   void update_actions_state(double now, double delta) override;
 
   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<double> bws, double lat,
+  LinkImpl* create_link(const std::string& name, const std::vector<double>& bws, double lat,
                         s4u::Link::SharingPolicy policy) override;
 };
 
                         s4u::Link::SharingPolicy policy) override;
 };
 
index d86a596..d112d2b 100644 (file)
@@ -48,7 +48,7 @@ public:
    * @param latency The initial latency of the Link in seconds
    * @param policy The sharing policy of the Link
    */
    * @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<double> bandwidths, double latency,
+  virtual LinkImpl* create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
                                 s4u::Link::SharingPolicy policy) = 0;
 
   /**
                                 s4u::Link::SharingPolicy policy) = 0;
 
   /**
index c6e2cce..211586f 100644 (file)
@@ -173,7 +173,7 @@ NetworkNS3Model::~NetworkNS3Model() {
   IPV4addr.clear();
 }
 
   IPV4addr.clear();
 }
 
-LinkImpl* NetworkNS3Model::create_link(const std::string& name, std::vector<double> bandwidths, double latency,
+LinkImpl* NetworkNS3Model::create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
                                        s4u::Link::SharingPolicy policy)
 {
   xbt_assert(bandwidths.size() == 1, "Non WIFI links must use only 1 bandwidth.");
                                        s4u::Link::SharingPolicy policy)
 {
   xbt_assert(bandwidths.size() == 1, "Non WIFI links must use only 1 bandwidth.");
index ed65cac..b565c97 100644 (file)
@@ -18,7 +18,7 @@ class NetworkNS3Model : public NetworkModel {
 public:
   NetworkNS3Model();
   ~NetworkNS3Model();
 public:
   NetworkNS3Model();
   ~NetworkNS3Model();
-  LinkImpl* create_link(const std::string& name, double bandwidth, double latency,
+  LinkImpl* create_link(const std::string& name, const std::vector<double>& 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;
                         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;
index dc1ec58..85c2bc3 100644 (file)
@@ -57,7 +57,7 @@ NetworkL07Model::NetworkL07Model(HostL07Model* hmodel, kernel::lmm::System* sys)
     : NetworkModel(Model::UpdateAlgo::FULL), hostModel_(hmodel)
 {
   set_maxmin_system(sys);
     : NetworkModel(Model::UpdateAlgo::FULL), hostModel_(hmodel)
 {
   set_maxmin_system(sys);
-  loopback_ = NetworkL07Model::create_link("__loopback__", std::vector<double>(1, 498000000), 0.000015,
+  loopback_ = NetworkL07Model::create_link("__loopback__", std::vector<double>{498000000}, 0.000015,
                                            s4u::Link::SharingPolicy::FATPIPE);
 }
 
                                            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);
 }
 
   return new CpuL07(this, host, speed_per_pstate, core);
 }
 
-kernel::resource::LinkImpl* NetworkL07Model::create_link(const std::string& name, std::vector<double> bandwidths,
+kernel::resource::LinkImpl* NetworkL07Model::create_link(const std::string& name, const std::vector<double>& bandwidths,
                                                          double latency, s4u::Link::SharingPolicy policy)
 {
   xbt_assert(bandwidths.size() == 1, "Non WIFI link must have only 1 bandwidth.");
                                                          double latency, s4u::Link::SharingPolicy policy)
 {
   xbt_assert(bandwidths.size() == 1, "Non WIFI link must have only 1 bandwidth.");
index 83f62f3..c96ca41 100644 (file)
@@ -63,8 +63,8 @@ public:
   NetworkL07Model(const NetworkL07Model&) = delete;
   NetworkL07Model& operator=(const NetworkL07Model&) = delete;
   ~NetworkL07Model();
   NetworkL07Model(const NetworkL07Model&) = delete;
   NetworkL07Model& operator=(const NetworkL07Model&) = delete;
   ~NetworkL07Model();
-  kernel::resource::LinkImpl* create_link(const std::string& name, std::vector<double> bandwidths, double latency,
-                                          s4u::Link::SharingPolicy policy) override;
+  kernel::resource::LinkImpl* create_link(const std::string& name, const std::vector<double>& bandwidths,
+                                          double latency, s4u::Link::SharingPolicy policy) override;
 
   kernel::resource::Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override;
 
 
   kernel::resource::Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override;