X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f5792a3bf76ce15a573ae5e9c63097595ae5f2bd..682027cc097d0a94e9bf2c7dc819db2f2c24f440:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index d5e7d0230a..c07fe792db 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -39,8 +39,8 @@ simgrid::xbt::signal surfExitCallbacks; } } -#include // FIXME: this plugin should not be linked to the core -#include // FIXME: this plugin should not be linked to the core +#include // FIXME: this plug-in should not be linked to the core +#include // FIXME: this plug-in should not be linked to the core s_surf_model_description_t surf_plugin_description[] = { {"Energy", "Cpu energy consumption.", &sg_host_energy_plugin_init}, @@ -128,16 +128,16 @@ double surf_get_clock() # define FILE_DELIM "/" /* FIXME: move to better location */ #endif -std::ifstream* surf_ifsopen(const char* name) +std::ifstream* surf_ifsopen(std::string name) { std::ifstream* fs = new std::ifstream(); - xbt_assert(name); - if (__surf_is_absolute_file_path(name)) { /* don't mess with absolute file names */ - fs->open(name, std::ifstream::in); + xbt_assert(not name.empty()); + if (__surf_is_absolute_file_path(name.c_str())) { /* don't mess with absolute file names */ + fs->open(name.c_str(), std::ifstream::in); } /* search relative files in the path */ - for (auto path_elm : surf_path) { + for (auto const& path_elm : surf_path) { std::string buff = path_elm + FILE_DELIM + name; fs->open(buff.c_str(), std::ifstream::in); @@ -149,6 +149,7 @@ std::ifstream* surf_ifsopen(const char* name) return fs; } + FILE *surf_fopen(const char *name, const char *mode) { FILE *file = nullptr; @@ -159,7 +160,7 @@ FILE *surf_fopen(const char *name, const char *mode) return fopen(name, mode); /* search relative files in the path */ - for (auto path_elm : surf_path) { + for (auto const& path_elm : surf_path) { std::string buff = path_elm + FILE_DELIM + name; file = fopen(buff.c_str(), mode); @@ -360,17 +361,17 @@ void surf_exit() sg_host_exit(); sg_link_exit(); - for (auto e : storage_types) { + for (auto const& e : storage_types) { simgrid::surf::StorageType* stype = e.second; delete stype->properties; delete stype->model_properties; delete stype; } - for (auto s : *simgrid::surf::StorageImpl::storagesMap()) + for (auto const& s : *simgrid::surf::StorageImpl::storagesMap()) delete s.second; delete simgrid::surf::StorageImpl::storagesMap(); - for (auto model : *all_existing_models) + for (auto const& model : *all_existing_models) delete model; delete all_existing_models; @@ -548,7 +549,7 @@ void Model::updateActionsStateFull(double /*now*/, double /*delta*/) namespace simgrid { namespace surf { -Resource::Resource(Model* model, const char* name, lmm_constraint_t constraint) +Resource::Resource(Model* model, const std::string& name, lmm_constraint_t constraint) : name_(name), model_(model), constraint_(constraint) {} @@ -633,8 +634,10 @@ Action::~Action() { xbt_free(category_); } -void Action::finish() { +void Action::finish(Action::State state) +{ finishTime_ = surf_get_clock(); + setState(state); } Action::State Action::getState() @@ -845,49 +848,5 @@ double Action::getRemainsNoUpdate() return remains_; } -//FIXME split code in the right places -void Action::updateRemainingLazy(double now) -{ - double delta = 0.0; - - if (getModel() == surf_network_model) { - if (suspended_ != 0) - return; - } else { - xbt_assert(stateSet_ == getModel()->getRunningActionSet(), "You're updating an action that is not running."); - xbt_assert(sharingWeight_ > 0, "You're updating an action that seems suspended."); - } - - delta = now - lastUpdate_; - - if (remains_ > 0) { - XBT_DEBUG("Updating action(%p): remains was %f, last_update was: %f", this, remains_, lastUpdate_); - double_update(&remains_, lastValue_ * delta, sg_surf_precision*sg_maxmin_precision); - - if (getModel() == surf_cpu_model_pm && TRACE_is_enabled()) { - simgrid::surf::Resource *cpu = static_cast( - lmm_constraint_id(lmm_get_cnst_from_var(getModel()->getMaxminSystem(), getVariable(), 0))); - TRACE_surf_host_set_utilization(cpu->cname(), getCategory(), lastValue_, lastUpdate_, now - lastUpdate_); - } - XBT_DEBUG("Updating action(%p): remains is now %f", this, remains_); - } - - if (getModel() == surf_network_model) { - if (maxDuration_ != NO_MAX_DURATION) - double_update(&maxDuration_, delta, sg_surf_precision); - - //FIXME: duplicated code - if (((remains_ <= 0) && (lmm_get_variable_weight(getVariable()) > 0)) || - ((maxDuration_ > NO_MAX_DURATION) && (maxDuration_ <= 0))) { - finish(); - setState(Action::State::done); - heapRemove(getModel()->getActionHeap()); - } - } - - lastUpdate_ = now; - lastValue_ = lmm_variable_getvalue(getVariable()); -} - } }