From: Arnaud Giersch Date: Thu, 30 Nov 2017 13:56:11 +0000 (+0100) Subject: Constification in maxmin. X-Git-Tag: v3.18~197^2~9 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ff25d0379ffdbee9ddbd8f0d1ab6931de25b420a?hp=12bf28afa63019afb2e146f2512556dc5f1713c5 Constification in maxmin. --- diff --git a/include/simgrid/forward.h b/include/simgrid/forward.h index 3b962734bd..b2905bbcf1 100644 --- a/include/simgrid/forward.h +++ b/include/simgrid/forward.h @@ -88,6 +88,7 @@ typedef simgrid::kernel::activity::MailboxImpl* smx_mailbox_t; typedef simgrid::surf::StorageImpl* surf_storage_t; typedef simgrid::kernel::lmm::s_lmm_element_t* lmm_element_t; +typedef const simgrid::kernel::lmm::s_lmm_element_t* const_lmm_element_t; typedef simgrid::kernel::lmm::s_lmm_variable_t* lmm_variable_t; typedef simgrid::kernel::lmm::s_lmm_constraint_t* lmm_constraint_t; typedef simgrid::kernel::lmm::s_lmm_constraint_light_t* lmm_constraint_light_t; diff --git a/src/kernel/lmm/maxmin.cpp b/src/kernel/lmm/maxmin.cpp index 153707a8d1..a563fca3b5 100644 --- a/src/kernel/lmm/maxmin.cpp +++ b/src/kernel/lmm/maxmin.cpp @@ -62,7 +62,7 @@ void s_lmm_element_t::increase_concurrency() "Concurrency limit overflow!"); } -void s_lmm_system_t::check_concurrency() +void s_lmm_system_t::check_concurrency() const { // These checks are very expensive, so do them only if we want to debug SURF LMM if (not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug)) @@ -351,7 +351,7 @@ void s_lmm_system_t::expand_add(lmm_constraint_t cnst, lmm_variable_t var, doubl check_concurrency(); } -lmm_variable_t s_lmm_constraint_t::get_variable(lmm_element_t* elem) const +lmm_variable_t s_lmm_constraint_t::get_variable(const_lmm_element_t* elem) const { if (*elem == nullptr) { // That is the first call, pick the first element among enabled_element_set (or disabled_element_set if @@ -378,7 +378,8 @@ lmm_variable_t s_lmm_constraint_t::get_variable(lmm_element_t* elem) const // if we modify the swag between calls, normal version may loop forever // this safe version ensures that we browse the swag elements only once -lmm_variable_t s_lmm_constraint_t::get_variable_safe(lmm_element_t* elem, lmm_element_t* nextelem, int* numelem) const +lmm_variable_t s_lmm_constraint_t::get_variable_safe(const_lmm_element_t* elem, const_lmm_element_t* nextelem, + int* numelem) const { if (*elem == nullptr) { *elem = (lmm_element_t)xbt_swag_getFirst(&enabled_element_set); @@ -441,7 +442,7 @@ static inline void saturated_variable_set_update(s_lmm_constraint_light_t* cnst_ } } -static void format_lmm_element_swag(xbt_swag_t elem_list, int sharing_policy, double& sum, std::string& buf) +static void format_lmm_element_swag(const_xbt_swag_t elem_list, int sharing_policy, double& sum, std::string& buf) { void* _elem; xbt_swag_foreach(_elem, elem_list) @@ -456,13 +457,13 @@ static void format_lmm_element_swag(xbt_swag_t elem_list, int sharing_policy, do } } -void s_lmm_system_t::print() +void s_lmm_system_t::print() const { std::string buf = std::string("MAX-MIN ( "); void* _var; /* Printing Objective */ - xbt_swag_t var_list = &variable_set; + const_xbt_swag_t var_list = &variable_set; xbt_swag_foreach(_var, var_list) { lmm_variable_t var = (lmm_variable_t)_var; @@ -475,7 +476,7 @@ void s_lmm_system_t::print() XBT_DEBUG("Constraints"); /* Printing Constraints */ void* _cnst; - xbt_swag_t cnst_list = &active_constraint_set; + const_xbt_swag_t cnst_list = &active_constraint_set; xbt_swag_foreach(_cnst, cnst_list) { lmm_constraint_t cnst = (lmm_constraint_t)_cnst; diff --git a/src/kernel/lmm/maxmin.hpp b/src/kernel/lmm/maxmin.hpp index 61f78ed323..a691217232 100644 --- a/src/kernel/lmm/maxmin.hpp +++ b/src/kernel/lmm/maxmin.hpp @@ -273,7 +273,7 @@ public: * @param elem A element of constraint of the constraint or NULL * @return A variable associated to a constraint */ - lmm_variable_t get_variable(lmm_element_t * elem) const; + lmm_variable_t get_variable(const_lmm_element_t* elem) const; /** * @brief Get a var associated to a constraint @@ -283,7 +283,7 @@ public: * @param numelem parameter representing the number of elements to go * @return A variable associated to a constraint */ - lmm_variable_t get_variable_safe(lmm_element_t * elem, lmm_element_t * nextelem, int* numelem) const; + lmm_variable_t get_variable_safe(const_lmm_element_t* elem, const_lmm_element_t* nextelem, int* numelem) const; /** * @brief Get the data associated to a constraint @@ -512,7 +512,7 @@ public: int constraint_used(lmm_constraint_t cnst) { return xbt_swag_belongs(cnst, &active_constraint_set); } /** @brief Print the lmm system */ - void print(); + void print() const; /** @brief Solve the lmm system */ void solve(); @@ -555,7 +555,7 @@ private: /** @brief Remove all constraints of the modified_constraint_set. */ void remove_all_modified_set(); - void check_concurrency(); + void check_concurrency() const; public: bool modified; diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index 36fbc738d3..bfa4e5362a 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -104,7 +104,7 @@ bool CpuCas01::isUsed() /** @brief take into account changes of speed (either load or max) */ void CpuCas01::onSpeedChange() { lmm_variable_t var = nullptr; - lmm_element_t elem = nullptr; + const_lmm_element_t elem = nullptr; model()->getMaxminSystem()->update_constraint_bound(constraint(), coresAmount_ * speed_.scale * speed_.peak); while ((var = constraint()->get_variable(&elem))) { @@ -138,7 +138,7 @@ void CpuCas01::apply_event(tmgr_trace_event_t event, double value) } else { lmm_constraint_t cnst = constraint(); lmm_variable_t var = nullptr; - lmm_element_t elem = nullptr; + const_lmm_element_t elem = nullptr; double date = surf_get_clock(); turnOff(); diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 66a838fc0d..e7338e9b5a 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -380,7 +380,7 @@ void NetworkCm02Link::apply_event(tmgr_trace_event_t triggered, double value) turnOn(); else { lmm_variable_t var = nullptr; - lmm_element_t elem = nullptr; + const_lmm_element_t elem = nullptr; double now = surf_get_clock(); turnOff(); @@ -414,8 +414,8 @@ void NetworkCm02Link::setBandwidth(double value) double delta = sg_weight_S_parameter / value - sg_weight_S_parameter / (bandwidth_.peak * bandwidth_.scale); lmm_variable_t var; - lmm_element_t elem = nullptr; - lmm_element_t nextelem = nullptr; + const_lmm_element_t elem = nullptr; + const_lmm_element_t nextelem = nullptr; int numelem = 0; while ((var = constraint()->get_variable_safe(&elem, &nextelem, &numelem))) { NetworkCm02Action* action = static_cast(var->get_id()); @@ -428,10 +428,10 @@ void NetworkCm02Link::setBandwidth(double value) void NetworkCm02Link::setLatency(double value) { - double delta = value - latency_.peak; - lmm_variable_t var = nullptr; - lmm_element_t elem = nullptr; - lmm_element_t nextelem = nullptr; + double delta = value - latency_.peak; + lmm_variable_t var = nullptr; + const_lmm_element_t elem = nullptr; + const_lmm_element_t nextelem = nullptr; int numelem = 0; latency_.peak = value; diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index 55c1e24ec3..d94f6fbee4 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -295,7 +295,7 @@ bool CpuL07::isUsed(){ /** @brief take into account changes of speed (either load or max) */ void CpuL07::onSpeedChange() { lmm_variable_t var = nullptr; - lmm_element_t elem = nullptr; + const_lmm_element_t elem = nullptr; model()->getMaxminSystem()->update_constraint_bound(constraint(), speed_.peak * speed_.scale); while ((var = constraint()->get_variable(&elem))) { @@ -365,7 +365,7 @@ void LinkL07::setLatency(double value) { lmm_variable_t var = nullptr; L07Action *action; - lmm_element_t elem = nullptr; + const_lmm_element_t elem = nullptr; latency_.peak = value; while ((var = constraint()->get_variable(&elem))) {