X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/22a45a8d97ef0f1211ee05f9c16d7d90b37cf33b..2db0630d598bd5bf5daa239297202b85e8ff0813:/include/simgrid/kernel/resource/Model.hpp?ds=sidebyside diff --git a/include/simgrid/kernel/resource/Model.hpp b/include/simgrid/kernel/resource/Model.hpp index b803d87a14..ad3e0cb17b 100644 --- a/include/simgrid/kernel/resource/Model.hpp +++ b/include/simgrid/kernel/resource/Model.hpp @@ -20,16 +20,14 @@ class XBT_PUBLIC Model { public: /** @brief Possible update mechanisms */ enum class UpdateAlgo { - Full, /**< Full update mechanism: the remaining time of every action is recomputed at each step */ - Lazy, /**< Lazy update mechanism: only the modified actions get recomputed. - It may be slower than full if your system is tightly coupled to the point where every action - gets recomputed anyway. In that case, you'd better not try to be cleaver with lazy and go for - a simple full update. */ - Undefined /**< Mechanism not defined */ + Full, /**< Full update mechanism: the remaining time of every action is recomputed at each step */ + Lazy /**< Lazy update mechanism: only the modified actions get recomputed. + It may be slower than full if your system is tightly coupled to the point where every action + gets recomputed anyway. In that case, you'd better not try to be cleaver with lazy and go for + a simple full update. */ }; - Model(); - Model(Model::UpdateAlgo algo); + explicit Model(Model::UpdateAlgo algo); virtual ~Model(); @@ -54,16 +52,11 @@ public: /** @brief Set the maxmin system of the current Model */ void set_maxmin_system(lmm::System* system) { maxmin_system_ = system; } - /** @brief Get the update mechanism of the current Model */ - UpdateAlgo getUpdateMechanism() const { return update_mechanism_; } - void setUpdateMechanism(UpdateAlgo mechanism) { update_mechanism_ = mechanism; } + /** @brief Get the update algorithm of the current Model */ + UpdateAlgo get_update_algorithm() const { return update_algorithm_; } /** @brief Get Action heap */ - heap_type& getActionHeap() { return action_heap_; } - - double actionHeapTopDate() const { return action_heap_.top().first; } - Action* actionHeapPop(); - bool actionHeapIsEmpty() const { return action_heap_.empty(); } + ActionHeap& get_action_heap() { return action_heap_; } /** * @brief Share the resources between the actions @@ -94,12 +87,12 @@ public: private: lmm::System* maxmin_system_ = nullptr; - UpdateAlgo update_mechanism_ = UpdateAlgo::Undefined; + const UpdateAlgo update_algorithm_; Action::StateSet* ready_action_set_ = new Action::StateSet(); /**< Actions in state SURF_ACTION_READY */ Action::StateSet* running_action_set_ = new Action::StateSet(); /**< Actions in state SURF_ACTION_RUNNING */ Action::StateSet* failed_action_set_ = new Action::StateSet(); /**< Actions in state SURF_ACTION_FAILED */ Action::StateSet* done_action_set_ = new Action::StateSet(); /**< Actions in state SURF_ACTION_DONE */ - heap_type action_heap_; + ActionHeap action_heap_; }; } // namespace resource