X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/76e8bf7e84d35a0d3442f7f1e9ba5927db1d4fb5..d74e17e7c1af9fdf99700b1b21bae6b95ba5241a:/src/kernel/lmm/maxmin.hpp diff --git a/src/kernel/lmm/maxmin.hpp b/src/kernel/lmm/maxmin.hpp index abbb741289..4e88bba2b8 100644 --- a/src/kernel/lmm/maxmin.hpp +++ b/src/kernel/lmm/maxmin.hpp @@ -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,16 +392,17 @@ 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 * @param id Data associated to the variable (e.g.: a network communication) - * @param weight_value The weight of the variable (0.0 if not used) + * @param sharing_penalty The weight of the variable (0.0 if not used) * @param bound The maximum value of the variable (-1.0 if no maximum value) - * @param number_of_constraints The maximum number of constraint to associate to the variable + * @param number_of_constraints The maximum number of constraints to associate to the variable */ - Variable* variable_new(resource::Action* id, double weight_value, double bound, size_t number_of_constraints); + Variable* variable_new(resource::Action* id, double sharing_penalty, double bound = -1.0, + size_t number_of_constraints = 1); /** * @brief Free a variable @@ -409,6 +410,9 @@ public: */ void variable_free(Variable * var); + /** @brief Free all variables */ + void variable_free_all(); + /** * @brief Associate a variable to a constraint with a coefficient * @param cnst A constraint