-/* Copyright (c) 2004-2020. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-2022. 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. */
#include "simgrid/kernel/resource/Model.hpp"
#include "src/kernel/lmm/maxmin.hpp"
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(resource);
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ker_resource);
namespace simgrid {
namespace kernel {
namespace resource {
-Model::Model(Model::UpdateAlgo algo) : update_algorithm_(algo) {}
-Model::~Model() = default; // Don't move this declaration to the header, or it will break external projects such as SimGrid-FMI
+Model::Model(const std::string& name) : name_(name)
+{
+}
+
+Model::~Model() =
+ default; // Don't move this declaration to the header, or it will break external projects such as SimGrid-FMI
+
+Model* Model::set_update_algorithm(Model::UpdateAlgo algo)
+{
+ update_algorithm_ = algo;
+ return this;
+}
Action::ModifiedSet* Model::get_modified_set() const
{
action->update_remains_lazy(now);
double min = -1;
- double share = action->get_variable()->get_value();
+ double share = action->get_rate();
if (share > 0) {
double time_to_completion;
if ((action->get_max_duration() != NO_MAX_DURATION) &&
(min <= -1 || action->get_start_time() + action->get_max_duration() < min)) {
// when the task will complete anyway because of the deadline if any
- min = action->get_start_time() + action->get_max_duration();
- action_type = ActionHeap::Type::max_duration;
+ min = action->get_start_time() + action->get_max_duration();
+ action_type = ActionHeap::Type::max_duration;
}
XBT_DEBUG("Action(%p) corresponds to variable %d", action, action->get_variable()->rank_);
double min = -1;
for (Action& action : *get_started_action_set()) {
- double value = action.get_variable()->get_value();
+ double value = action.get_rate();
if (value > 0) {
if (action.get_remains() > 0)
value = action.get_remains_no_update() / value;