Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make Activity::on_completion take a const&, just like Comm::on_completion
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 22 Jan 2022 14:32:31 +0000 (15:32 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 22 Jan 2022 14:32:31 +0000 (15:32 +0100)
I think it's dangerous to have a static function of the same name and
differing prototype in a subclass, even more if the only difference is
the parameter const-ness.

examples/cpp/dag-comm/s4u-dag-comm.cpp
examples/cpp/dag-failure/s4u-dag-failure.cpp
examples/cpp/dag-io/s4u-dag-io.cpp
examples/cpp/dag-scheduling/s4u-dag-scheduling.cpp
examples/cpp/dag-simple/s4u-dag-simple.cpp
include/simgrid/s4u/Activity.hpp
src/kernel/resource/VirtualMachineImpl.cpp
src/plugins/host_dvfs.cpp
src/plugins/host_load.cpp
teshsuite/s4u/dependencies/dependencies.cpp

index 28c7eb0..4f4699e 100644 (file)
@@ -24,12 +24,12 @@ int main(int argc, char* argv[])
              (a.dependencies_solved() ? "solved" : "NOT solved"), (a.is_assigned() ? "assigned" : "NOT assigned"));
   });
 
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec != nullptr)
       XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
                exec->get_finish_time());
-    const auto* comm = dynamic_cast<simgrid::s4u::Comm*>(&activity);
+    const auto* comm = dynamic_cast<simgrid::s4u::Comm const*>(&activity);
     if (comm != nullptr)
       XBT_INFO("Activity '%s' is complete", comm->get_cname());
   });
index e905a0f..7139b80 100644 (file)
@@ -18,8 +18,8 @@ int main(int argc, char** argv)
 
   auto* faulty = e.host_by_name("Faulty Host");
   auto* safe   = e.host_by_name("Safe Host");
-  sg4::Activity::on_completion_cb([](sg4::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  sg4::Activity::on_completion_cb([](sg4::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     if (exec->get_state() == sg4::Activity::State::FINISHED)
index cf6a9c4..c2dccda 100644 (file)
@@ -24,8 +24,8 @@ int main(int argc, char* argv[])
              (a.dependencies_solved() ? "solved" : "NOT solved"), (a.is_assigned() ? "assigned" : "NOT assigned"));
   });
 
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
index e482b00..4f8334a 100644 (file)
@@ -165,9 +165,9 @@ int main(int argc, char** argv)
   std::set<simgrid::s4u::Activity*> vetoed;
   e.track_vetoed_activities(&vetoed);
 
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
     // when an Exec completes, we need to set the potential start time of all its ouput comms
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     for (const auto& succ : exec->get_successors()) {
index b829beb..4d13a82 100644 (file)
@@ -26,8 +26,8 @@ int main(int argc, char* argv[])
              (exec.is_assigned() ? "assigned" : "NOT assigned"));
   });
 
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
index 639bd51..3d6b355 100644 (file)
@@ -104,7 +104,7 @@ public:
    * resource assigned) */
   static void on_veto_cb(const std::function<void(Activity&)>& cb) { on_veto.connect(cb); }
   /*! Add a callback fired when the activity completes (either normally, cancelled or failed) */
-  static void on_completion_cb(const std::function<void(Activity&)>& cb) { on_completion.connect(cb); }
+  static void on_completion_cb(const std::function<void(Activity const&)>& cb) { on_completion.connect(cb); }
 
   void vetoable_start()
   {
index 16607a0..a30d3a2 100644 (file)
@@ -75,9 +75,9 @@ static void add_active_exec(s4u::Exec const& task)
   }
 }
 
-static void remove_active_exec(s4u::Activity& task)
+static void remove_active_exec(s4u::Activity const& task)
 {
-  const auto* exec = dynamic_cast<s4u::Exec*>(&task);
+  const auto* exec = dynamic_cast<s4u::Exec const*>(&task);
   if (exec == nullptr)
     return;
   if (not exec->is_assigned())
index e378837..db1af09 100644 (file)
@@ -299,8 +299,8 @@ public:
       if (activity.get_host() == get_host())
         pre_task();
     });
-    simgrid::s4u::Activity::on_completion_cb([this](simgrid::s4u::Activity& activity) {
-      const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+    simgrid::s4u::Activity::on_completion_cb([this](simgrid::s4u::Activity const& activity) {
+      const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
       if (exec == nullptr) // Only Execs are concerned here
         return;
       // For more than one host (not yet supported), we can access the host via
index 1d7282d..61a67f4 100644 (file)
@@ -250,8 +250,8 @@ void sg_host_load_plugin_init()
       XBT_WARN("HostLoad plugin currently does not support executions on several hosts");
     }
   });
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     if (exec->get_host_number() == 1) { // We only run on one host
index 5fd6de5..699f27c 100644 (file)
@@ -13,8 +13,8 @@ int main(int argc, char** argv)
   xbt_assert(argc > 1, "Usage: %s platform_file\n\nExample: %s two_clusters.xml", argv[0], argv[0]);
   e.load_platform(argv[1]);
 
-  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity& activity) {
-    const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+  simgrid::s4u::Activity::on_completion_cb([](simgrid::s4u::Activity const& activity) {
+    const auto* exec = dynamic_cast<simgrid::s4u::Exec const*>(&activity);
     if (exec == nullptr) // Only Execs are concerned here
       return;
     XBT_INFO("Exec '%s' start time: %f, finish time: %f", exec->get_cname(), exec->get_start_time(),