X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/801817fee1842a25f3155c0426c96761a4e312ee..cc12fd6403964b251d1e253b99bdedeb6086a242:/src/kernel/resource/Resource.cpp diff --git a/src/kernel/resource/Resource.cpp b/src/kernel/resource/Resource.cpp index 6016ae4f80..bcab6dbc16 100644 --- a/src/kernel/resource/Resource.cpp +++ b/src/kernel/resource/Resource.cpp @@ -3,56 +3,57 @@ /* 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 "src/kernel/resource/Resource.hpp" +#include "simgrid/kernel/resource/Resource.hpp" #include "src/kernel/lmm/maxmin.hpp" // Constraint #include "src/surf/surf_interface.hpp" +#include "src/surf/trace_mgr.hpp" namespace simgrid { namespace kernel { namespace resource { -Resource::Resource(surf::Model* model, const std::string& name, lmm::Constraint* constraint) +Resource::Resource(Model* model, const std::string& name, lmm::Constraint* constraint) : name_(name), model_(model), constraint_(constraint) { } Resource::~Resource() = default; -bool Resource::isOn() const +bool Resource::is_on() const { - return isOn_; + return is_on_; } -bool Resource::isOff() const +bool Resource::is_off() const { - return not isOn_; + return not is_on_; } -void Resource::turnOn() +void Resource::turn_on() { - isOn_ = true; + is_on_ = true; } -void Resource::turnOff() +void Resource::turn_off() { - isOn_ = false; + is_on_ = false; } -double Resource::getLoad() +double Resource::get_load() { return constraint_->get_usage(); } -surf::Model* Resource::model() const +Model* Resource::get_model() const { return model_; } -const std::string& Resource::getName() const +const std::string& Resource::get_name() const { return name_; } -const char* Resource::getCname() const +const char* Resource::get_cname() const { return name_.c_str(); } @@ -62,9 +63,16 @@ bool Resource::operator==(const Resource& other) const return name_ == other.name_; } -kernel::lmm::Constraint* Resource::constraint() const +void Resource::set_state_trace(tmgr_trace_t trace) { - return const_cast(constraint_); + xbt_assert(state_event_ == nullptr, "Cannot set a second state trace to %s", get_cname()); + + state_event_ = future_evt_set->add_trace(trace, this); +} + +kernel::lmm::Constraint* Resource::get_constraint() const +{ + return constraint_; } } // namespace resource