Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This void* for Constraint::id_ is a Resource*.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 14 Jun 2019 13:29:18 +0000 (15:29 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 14 Jun 2019 20:23:31 +0000 (22:23 +0200)
src/instr/instr_platform.cpp
src/kernel/lmm/maxmin.cpp
src/kernel/lmm/maxmin.hpp
src/surf/cpu_interface.cpp
src/surf/network_interface.cpp
src/surf/ptask_L07.cpp

index c3d88b9..9ce839a 100644 (file)
@@ -247,8 +247,7 @@ static void instr_action_on_state_change(simgrid::kernel::resource::Action const
   for (int i = 0; i < n; i++) {
     double value = action.get_variable()->get_value() * action.get_variable()->get_constraint_weight(i);
     /* Beware of composite actions: ptasks put links and cpus together. Extra pb: we cannot dynamic_cast from void* */
-    simgrid::kernel::resource::Resource* resource =
-        static_cast<simgrid::kernel::resource::Resource*>(action.get_variable()->get_constraint(i)->get_id());
+    simgrid::kernel::resource::Resource* resource = action.get_variable()->get_constraint(i)->get_id();
     simgrid::kernel::resource::Cpu* cpu = dynamic_cast<simgrid::kernel::resource::Cpu*>(resource);
 
     if (cpu != nullptr)
index 628b69c..06822fd 100644 (file)
@@ -169,7 +169,7 @@ void System::cnst_free(Constraint* cnst)
   delete cnst;
 }
 
-Constraint::Constraint(void* id_value, double bound_value) : bound_(bound_value), id_(id_value)
+Constraint::Constraint(resource::Resource* id_value, double bound_value) : bound_(bound_value), id_(id_value)
 {
   rank_ = next_rank_++;
 
@@ -185,7 +185,7 @@ Constraint::Constraint(void* id_value, double bound_value) : bound_(bound_value)
   cnst_light_ = nullptr;
 }
 
-Constraint* System::constraint_new(void* id, double bound_value)
+Constraint* System::constraint_new(resource::Resource* id, double bound_value)
 {
   Constraint* cnst = new Constraint(id, bound_value);
   insert_constraint(cnst);
index abbb741..a7b7298 100644 (file)
@@ -179,7 +179,7 @@ public:
 class XBT_PUBLIC Constraint {
 public:
   Constraint() = delete;
-  Constraint(void* id_value, double bound_value);
+  Constraint(resource::Resource* id_value, double bound_value);
 
   /** @brief Unshare a constraint. */
   void unshare() { sharing_policy_ = s4u::Link::SharingPolicy::FATPIPE; }
@@ -244,7 +244,7 @@ public:
    * @brief Get the data associated to a constraint
    * @return The data associated to the constraint
    */
-  void* get_id() const { return id_; }
+  resource::Resource* get_id() const { return id_; }
 
   /* hookup to system */
   boost::intrusive::list_member_hook<> constraint_set_hook_;
@@ -278,7 +278,7 @@ private:
   static int next_rank_;  // To give a separate rank_ to each contraint
   int concurrency_limit_; /* The maximum number of variables that may be enabled at any time (stage variables if
                            * necessary) */
-  void* id_;
+  resource::Resource* id_;
 };
 
 /**
@@ -392,7 +392,7 @@ public:
    * @param id Data associated to the constraint (e.g.: a network link)
    * @param bound_value The bound value of the constraint
    */
-  Constraint* constraint_new(void* id, double bound_value);
+  Constraint* constraint_new(resource::Resource* id, double bound_value);
 
   /**
    * @brief Create a new Linear MaxMin variable
index caca3f5..7682995 100644 (file)
@@ -188,7 +188,7 @@ std::list<Cpu*> CpuAction::cpus() const
   for (int i = 0; i < llen; i++) {
     /* Beware of composite actions: ptasks put links and cpus together */
     // extra pb: we cannot dynamic_cast from void*...
-    Resource* resource = static_cast<Resource*>(get_variable()->get_constraint(i)->get_id());
+    Resource* resource = get_variable()->get_constraint(i)->get_id();
     Cpu* cpu           = dynamic_cast<Cpu*>(resource);
     if (cpu != nullptr)
       retlist.push_back(cpu);
index 33d0764..e7d5ad9 100644 (file)
@@ -179,7 +179,7 @@ std::list<LinkImpl*> NetworkAction::links() const
   for (int i = 0; i < llen; i++) {
     /* Beware of composite actions: ptasks put links and cpus together */
     // extra pb: we cannot dynamic_cast from void*...
-    Resource* resource = static_cast<Resource*>(get_variable()->get_constraint(i)->get_id());
+    Resource* resource = get_variable()->get_constraint(i)->get_id();
     LinkImpl* link     = dynamic_cast<LinkImpl*>(resource);
     if (link != nullptr)
       retlist.push_back(link);
index 17dca14..18cba8c 100644 (file)
@@ -121,8 +121,8 @@ void HostL07Model::update_actions_state(double /*now*/, double delta)
     kernel::lmm::Constraint* cnst = action.get_variable()->get_constraint(i);
     while (cnst != nullptr) {
       i++;
-      void* constraint_id = cnst->get_id();
-      if (not static_cast<simgrid::kernel::resource::Resource*>(constraint_id)->is_on()) {
+      kernel::resource::Resource* constraint_id = cnst->get_id();
+      if (not constraint_id->is_on()) {
         XBT_DEBUG("Action (%p) Failed!!", &action);
         action.finish(kernel::resource::Action::State::FAILED);
         break;