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_;
}
}
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()
}
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));
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());
}
}