X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0dcda218187c4874a539a6887b132ed5e6cc77dd..5d618cbecf8b08ed4b0b4fc2373980b8ce4b4344:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index 1dcc7540a1..b5c3a805fe 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -558,62 +558,51 @@ namespace simgrid { namespace surf { Resource::Resource(Model *model, const char *name) - : Resource(model, name, 1/*ON*/) + : name_(xbt_strdup(name)) + , model_(model) {} Resource::Resource(Model *model, const char *name, lmm_constraint_t constraint) - : Resource(model, name, constraint, 1/*ON*/) -{} - -Resource::Resource(Model *model, const char *name, lmm_constraint_t constraint, int initiallyOn) - : p_name(xbt_strdup(name)) - , p_model(model) - , m_isOn(initiallyOn) - , p_constraint(constraint) -{} - -Resource::Resource(Model *model, const char *name, int initiallyOn) - : p_name(xbt_strdup(name)) - , p_model(model) - , m_isOn(initiallyOn) + : name_(xbt_strdup(name)) + , model_(model) + , constraint_(constraint) {} - Resource::~Resource() { - xbt_free((void*)p_name); + xbt_free((void*)name_); } -bool Resource::isOn() { - return m_isOn; +bool Resource::isOn() const { + return isOn_; } -bool Resource::isOff() { - return ! m_isOn; +bool Resource::isOff() const { + return ! isOn_; } void Resource::turnOn() { - if (!m_isOn) { - m_isOn = true; - } + isOn_ = true; } void Resource::turnOff() { - if (m_isOn) { - m_isOn = false; - } + isOn_ = false; } -Model *Resource::getModel() { - return p_model; +Model *Resource::getModel() const { + return model_; } -const char *Resource::getName() { - return p_name; +const char *Resource::getName() const { + return name_; } -lmm_constraint_t Resource::getConstraint() { - return p_constraint; +bool Resource::operator==(const Resource &other) const { + return strcmp(name_, other.name_); +} + +lmm_constraint_t Resource::getConstraint() const { + return constraint_; } } @@ -674,38 +663,41 @@ void Action::finish() { m_finish = surf_get_clock(); } -e_surf_action_state_t Action::getState() +Action::State Action::getState() { if (p_stateSet == getModel()->getReadyActionSet()) - return SURF_ACTION_READY; + return Action::State::ready; if (p_stateSet == getModel()->getRunningActionSet()) - return SURF_ACTION_RUNNING; + return Action::State::running; if (p_stateSet == getModel()->getFailedActionSet()) - return SURF_ACTION_FAILED; + return Action::State::failed; if (p_stateSet == getModel()->getDoneActionSet()) - return SURF_ACTION_DONE; - return SURF_ACTION_NOT_IN_THE_SYSTEM; + return Action::State::done; + return Action::State::not_in_the_system; } -void Action::setState(e_surf_action_state_t state) +void Action::setState(Action::State state) { - //surf_action_state_t action_state = &(action->model_type->states); - XBT_IN("(%p,%s)", this, surf_action_state_names[state]); p_stateSet->erase(p_stateSet->iterator_to(*this)); - if (state == SURF_ACTION_READY) + switch (state) { + case Action::State::ready: p_stateSet = getModel()->getReadyActionSet(); - else if (state == SURF_ACTION_RUNNING) + break; + case Action::State::running: p_stateSet = getModel()->getRunningActionSet(); - else if (state == SURF_ACTION_FAILED) + break; + case Action::State::failed: p_stateSet = getModel()->getFailedActionSet(); - else if (state == SURF_ACTION_DONE) + break; + case Action::State::done: p_stateSet = getModel()->getDoneActionSet(); - else + break; + default: p_stateSet = NULL; - + break; + } if (p_stateSet) p_stateSet->push_back(*this); - XBT_OUT(); } double Action::getBound() @@ -774,7 +766,7 @@ void Action::setPriority(double priority) } void Action::cancel(){ - setState(SURF_ACTION_FAILED); + setState(Action::State::failed); if (getModel()->getUpdateMechanism() == UM_LAZY) { if (action_lmm_hook.is_linked()) getModel()->getModifiedSet()->erase(getModel()->getModifiedSet()->iterator_to(*this)); @@ -922,12 +914,12 @@ void Action::updateRemainingLazy(double now) if ((m_remains <= 0) && (lmm_get_variable_weight(getVariable()) > 0)) { finish(); - setState(SURF_ACTION_DONE); + setState(Action::State::done); heapRemove(getModel()->getActionHeap()); } else if (((m_maxDuration != NO_MAX_DURATION) && (m_maxDuration <= 0))) { finish(); - setState(SURF_ACTION_DONE); + setState(Action::State::done); heapRemove(getModel()->getActionHeap()); } }