Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill typedef lmm_element_t
[simgrid.git] / src / kernel / lmm / maxmin.cpp
index e859c9e..aace67e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2018. 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. */
@@ -150,7 +150,6 @@ System::System(bool selective_update) : selective_update_active(selective_update
 
   XBT_DEBUG("Setting selective_update_active flag to %d", selective_update_active);
 
-  keep_track          = nullptr;
   variable_mallocator =
       xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
   solve_fun = &lmm_solve;
@@ -171,6 +170,7 @@ System::~System()
     cnst_free(cnst);
 
   xbt_mallocator_free(variable_mallocator);
+  delete modified_set_;
 }
 
 void System::cnst_free(Constraint* cnst)
@@ -212,7 +212,7 @@ void System::variable_mallocator_free_f(void* var)
   delete static_cast<Variable*>(var);
 }
 
-Variable* System::variable_new(simgrid::surf::Action* id, double sharing_weight, double bound,
+Variable* System::variable_new(simgrid::kernel::resource::Action* id, double sharing_weight, double bound,
                                int number_of_constraints)
 {
   XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%d)", this, id, sharing_weight, bound, number_of_constraints);
@@ -412,7 +412,7 @@ static inline void saturated_constraints_update(double usage, int cnst_light_num
 }
 
 static inline void saturated_variable_set_update(ConstraintLight* cnst_light_tab,
-                                                 const dyn_light_t& saturated_constraints, lmm_system_t sys)
+                                                 const dyn_light_t& saturated_constraints, System* sys)
 {
   /* Add active variables (i.e. variables that need to be set) from the set of constraints to saturate
    * (cnst_light_tab)*/
@@ -535,9 +535,9 @@ template <class CnstList> void System::solve(CnstList& cnst_list)
           cnst.usage = elem.consumption_weight / elem.variable->sharing_weight;
 
         elem.make_active();
-        simgrid::surf::Action* action = static_cast<simgrid::surf::Action*>(elem.variable->id);
-        if (keep_track && not action->is_linked())
-          keep_track->push_back(*action);
+        simgrid::kernel::resource::Action* action = static_cast<simgrid::kernel::resource::Action*>(elem.variable->id);
+        if (modified_set_ && not action->isLinkedModifiedSet())
+          modified_set_->push_back(*action);
       }
     }
     XBT_DEBUG("Constraint '%d' usage: %f remaining: %f concurrency: %i<=%i<=%i", cnst.id_int, cnst.usage,
@@ -690,7 +690,7 @@ template <class CnstList> void System::solve(CnstList& cnst_list)
   delete[] cnst_light_tab;
 }
 
-void lmm_solve(lmm_system_t sys)
+void lmm_solve(System* sys)
 {
   sys->solve();
 }
@@ -712,7 +712,7 @@ void System::update_variable_bound(Variable* var, double bound)
     update_modified_set(var->cnsts[0].constraint);
 }
 
-void Variable::initialize(simgrid::surf::Action* id_value, double sharing_weight_value, double bound_value,
+void Variable::initialize(simgrid::kernel::resource::Action* id_value, double sharing_weight_value, double bound_value,
                           int number_of_constraints, unsigned visited_value)
 {
   id     = id_value;
@@ -817,12 +817,12 @@ void System::on_disabled_var(Constraint* cnstr)
   if (not numelem)
     return;
 
-  lmm_element_t elem = &cnstr->disabled_element_set.front();
+  Element* elem = &cnstr->disabled_element_set.front();
 
   // Cannot use foreach loop, because System::enable_var() will modify disabled_element_set.. within the loop
   while (numelem-- && elem) {
 
-    lmm_element_t nextelem;
+    Element* nextelem;
     if (elem->disabled_element_set_hook.is_linked()) {
       auto iter = std::next(cnstr->disabled_element_set.iterator_to(*elem));
       nextelem  = iter != std::end(cnstr->disabled_element_set) ? &*iter : nullptr;