X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/004f590018709991ab87a1f113c9b80d1cb17318..07eb08dd092e89871ab3ed9fcf41ad0219598e3b:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index b2257a87d9..d887e1f4ae 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2018. 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. */ @@ -321,7 +321,7 @@ void surf_exit() { TRACE_end(); /* Just in case it was not called by the upper layer (or there is no upper layer) */ - sg_host_exit(); + simgrid::s4u::Engine::shutdown(); sg_link_exit(); for (auto const& e : storage_types) { simgrid::surf::StorageType* stype = e.second; @@ -337,7 +337,6 @@ void surf_exit() delete model; delete all_existing_models; - simgrid::surf::surfExitCallbacks(); if (future_evt_set) { delete future_evt_set; @@ -346,7 +345,6 @@ void surf_exit() tmgr_finalize(); sg_platf_exit(); - simgrid::s4u::Engine::shutdown(); NOW = 0; /* Just in case the user plans to restart the simulation afterward */ } @@ -414,7 +412,7 @@ double Model::nextOccuringEventLazy(double now) continue; /* bogus priority, skip it */ - if (action->getPriority() <= 0 || action->getHat()==LATENCY) + if (action->getPriority() <= 0 || action->getHat() == Action::Type::LATENCY) continue; action->updateRemainingLazy(now); @@ -446,7 +444,7 @@ double Model::nextOccuringEventLazy(double now) action->getMaxDuration()); if (min > -1) { - action->heapUpdate(actionHeap_, min, max_dur_flag ? MAX_DURATION : NORMAL); + action->heapUpdate(actionHeap_, min, max_dur_flag ? Action::Type::MAX_DURATION : Action::Type::NORMAL); XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min, now); } else DIE_IMPOSSIBLE; @@ -518,9 +516,10 @@ void Model::updateActionsStateFull(double /*now*/, double /*delta*/) ************/ namespace simgrid { -namespace surf { +namespace kernel { +namespace model { -Resource::Resource(Model* model, const std::string& name, lmm_constraint_t constraint) +Resource::Resource(surf::Model* model, const std::string& name, lmm::Constraint* constraint) : name_(name), model_(model), constraint_(constraint) {} @@ -548,7 +547,7 @@ double Resource::getLoad() return constraint_->get_usage(); } -Model* Resource::model() const +surf::Model* Resource::model() const { return model_; } @@ -567,27 +566,19 @@ bool Resource::operator==(const Resource &other) const { return name_ == other.name_; } -lmm_constraint_t Resource::constraint() const +kernel::lmm::Constraint* Resource::constraint() const { - return constraint_; + return const_cast(constraint_); } } +} // namespace kernel } /********** * Action * **********/ -const char *surf_action_state_names[6] = { - "SURF_ACTION_READY", - "SURF_ACTION_RUNNING", - "SURF_ACTION_FAILED", - "SURF_ACTION_DONE", - "SURF_ACTION_TO_FREE", - "SURF_ACTION_NOT_IN_THE_SYSTEM" -}; - namespace simgrid { namespace surf { @@ -595,7 +586,7 @@ Action::Action(simgrid::surf::Model* model, double cost, bool failed) : Action(m { } -Action::Action(simgrid::surf::Model* model, double cost, bool failed, lmm_variable_t var) +Action::Action(simgrid::surf::Model* model, double cost, bool failed, kernel::lmm::Variable* var) : remains_(cost), start_(surf_get_clock()), cost_(cost), model_(model), variable_(var) { if (failed) @@ -727,7 +718,7 @@ int Action::unref(){ void Action::suspend() { XBT_IN("(%p)", this); - if (suspended_ != 2) { + if (suspended_ != SuspendStates::sleeping) { getModel()->getMaxminSystem()->update_variable_weight(getVariable(), 0.0); if (getModel()->getUpdateMechanism() == UM_LAZY){ heapRemove(getModel()->getActionHeap()); @@ -737,7 +728,7 @@ void Action::suspend() updateRemainingLazy(surf_get_clock()); } } - suspended_ = 1; + suspended_ = SuspendStates::suspended; } XBT_OUT(); } @@ -745,9 +736,9 @@ void Action::suspend() void Action::resume() { XBT_IN("(%p)", this); - if (suspended_ != 2) { + if (suspended_ != SuspendStates::sleeping) { getModel()->getMaxminSystem()->update_variable_weight(getVariable(), getPriority()); - suspended_ = 0; + suspended_ = SuspendStates::not_suspended; if (getModel()->getUpdateMechanism() == UM_LAZY) heapRemove(getModel()->getActionHeap()); } @@ -756,7 +747,7 @@ void Action::resume() bool Action::isSuspended() { - return suspended_ == 1; + return suspended_ == SuspendStates::suspended; } /* insert action on heap using a given key and a hat (heap_action_type) * a hat can be of three types for communications: @@ -765,7 +756,7 @@ bool Action::isSuspended() * LATENCY = this is a heap entry to warn us when the latency is payed * MAX_DURATION =this is a heap entry to warn us when the max_duration limit is reached */ -void Action::heapInsert(heap_type& heap, double key, enum heap_action_type hat) +void Action::heapInsert(heap_type& heap, double key, Action::Type hat) { hat_ = hat; heapHandle_ = heap.emplace(std::make_pair(key, this)); @@ -773,14 +764,14 @@ void Action::heapInsert(heap_type& heap, double key, enum heap_action_type hat) void Action::heapRemove(heap_type& heap) { - hat_ = NOTSET; + hat_ = Action::Type::NOTSET; if (heapHandle_) { heap.erase(*heapHandle_); clearHeapHandle(); } } -void Action::heapUpdate(heap_type& heap, double key, enum heap_action_type hat) +void Action::heapUpdate(heap_type& heap, double key, Action::Type hat) { hat_ = hat; if (heapHandle_) {