X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8a2416eb66be0d05b645e8fc3bf05285b7d0807f..1b4dc02411d79e4c367d331b85c1b295ec41edff:/src/kernel/lmm/maxmin.hpp diff --git a/src/kernel/lmm/maxmin.hpp b/src/kernel/lmm/maxmin.hpp index c67f8c415c..1e3b0d3707 100644 --- a/src/kernel/lmm/maxmin.hpp +++ b/src/kernel/lmm/maxmin.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2019. 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. */ @@ -7,13 +7,9 @@ #define SURF_MAXMIN_HPP #include "simgrid/kernel/resource/Action.hpp" -#include "src/internal_config.h" -#include "src/surf/surf_interface.hpp" -#include "surf/surf.hpp" +#include "simgrid/s4u/Link.hpp" #include "xbt/asserts.h" #include "xbt/mallocator.h" -#include "xbt/misc.h" -#include "xbt/utility.hpp" #include #include @@ -179,7 +175,8 @@ public: double consumption_weight; }; -struct ConstraintLight { +class ConstraintLight { +public: double remaining_over_usage; Constraint* cnst; }; @@ -199,13 +196,13 @@ public: Constraint(void* id_value, double bound_value); /** @brief Unshare a constraint. */ - void unshare() { sharing_policy = 0; } + void unshare() { sharing_policy = s4u::Link::SharingPolicy::FATPIPE; } /** * @brief Check if a constraint is shared (shared by default) * @return 1 if shared, 0 otherwise */ - int get_sharing_policy() const { return sharing_policy; } + s4u::Link::SharingPolicy get_sharing_policy() const { return sharing_policy; } /** * @brief Get the usage of the constraint after the last lmm solve @@ -260,7 +257,7 @@ public: * @param elem A element of constraint of the constraint or NULL * @return A variable associated to a constraint */ - Variable* get_variable(const_lmm_element_t * elem) const; + Variable* get_variable(const Element** elem) const; /** * @brief Get a var associated to a constraint @@ -270,7 +267,7 @@ public: * @param numelem parameter representing the number of elements to go * @return A variable associated to a constraint */ - Variable* get_variable_safe(const_lmm_element_t * elem, const_lmm_element_t * nextelem, int* numelem) const; + Variable* get_variable_safe(const Element** elem, const Element** nextelem, int* numelem) const; /** * @brief Get the data associated to a constraint @@ -300,11 +297,11 @@ public: int concurrency_maximum; /* The maximum number of (enabled and disabled) variables associated to the constraint at any * given time (essentially for tracing)*/ - int sharing_policy; /* see @e_surf_link_sharing_policy_t (0: FATPIPE, 1: SHARED, 2: SPLITDUPLEX) */ + s4u::Link::SharingPolicy sharing_policy; int id_int; double lambda; double new_lambda; - lmm_constraint_light_t cnst_light; + ConstraintLight* cnst_light; private: static int Global_debug_id; @@ -321,7 +318,7 @@ private: */ class XBT_PUBLIC Variable { public: - void initialize(simgrid::kernel::resource::Action * id_value, double sharing_weight_value, double bound_value, + void initialize(resource::Action* id_value, double sharing_weight_value, double bound_value, int number_of_constraints, unsigned visited_value); /** @@ -360,13 +357,13 @@ public: * @brief Get the number of constraint associated to a variable * @return The number of constraint associated to the variable */ - int get_number_of_constraint() const { return cnsts.size(); } + size_t get_number_of_constraint() const { return cnsts.size(); } /** * @brief Get the data associated to a variable * @return The data associated to the variable */ - simgrid::kernel::resource::Action* get_id() const { return id; } + resource::Action* get_id() const { return id; } /** * @brief Get the weight of a variable @@ -399,7 +396,7 @@ public: double bound; double value; short int concurrency_share; /* The maximum number of elements that variable will add to a constraint */ - simgrid::kernel::resource::Action* id; + resource::Action* id; int id_int; unsigned visited; /* used by System::update_modified_set() */ /* \begin{For Lagrange only} */ @@ -448,8 +445,7 @@ public: * @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 */ - Variable* variable_new(simgrid::kernel::resource::Action * id, double weight_value, double bound, - int number_of_constraints); + Variable* variable_new(resource::Action* id, double weight_value, double bound, size_t number_of_constraints); /** * @brief Free a variable @@ -589,7 +585,7 @@ public: &Constraint::saturated_constraint_set_hook>> saturated_constraint_set; - simgrid::kernel::resource::Action::ModifiedSet* modified_set_ = nullptr; + resource::Action::ModifiedSet* modified_set_ = nullptr; private: bool selective_update_active; /* flag to update partially the system only selecting changed portions */ @@ -603,7 +599,6 @@ private: modified_constraint_set; xbt_mallocator_t variable_mallocator_ = xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr); - ; }; class XBT_PUBLIC FairBottleneck : public System {