X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1747902010b7fc57b15c2e88473c5bb118d362d1..fe82649110018df8a61effc7a91453506b45a9f5:/src/kernel/EngineImpl.cpp diff --git a/src/kernel/EngineImpl.cpp b/src/kernel/EngineImpl.cpp index e45b5e0273..b4f0c4f793 100644 --- a/src/kernel/EngineImpl.cpp +++ b/src/kernel/EngineImpl.cpp @@ -53,28 +53,27 @@ void EngineImpl::register_default(const actor::ActorCodeFactory& code) default_function = code; } -void EngineImpl::add_model_ptask(simgrid::kernel::resource::Model::Type type, simgrid::kernel::resource::Model* model, - bool is_default) +void EngineImpl::add_model(resource::Model::Type type, std::shared_ptr model, bool is_default) { if (is_default) - models_by_type_[type].insert(models_by_type_[type].begin(), model); + models_by_type_[type].insert(models_by_type_[type].begin(), model.get()); else - models_by_type_[type].push_back(model); + models_by_type_[type].push_back(model.get()); + + models_.push_back(std::move(model)); } -void EngineImpl::add_model(simgrid::kernel::resource::Model::Type type, - std::unique_ptr model, bool is_default) +resource::Model* EngineImpl::get_default_model(resource::Model::Type type) const { - add_model_ptask(type, model.get(), is_default); - models_.push_back(std::move(model)); + resource::Model* model = nullptr; + if (models_by_type_.find(type) != models_by_type_.end() and models_by_type_.at(type).size() > 0) + return models_by_type_.at(type)[0]; + return model; } -simgrid::kernel::resource::Model* EngineImpl::get_default_model(simgrid::kernel::resource::Model::Type type) +const std::vector& EngineImpl::get_model_list(resource::Model::Type type) { - if (models_by_type_[type].size() > 0) - return models_by_type_[type][0]; - else - return nullptr; + return models_by_type_[type]; } } // namespace kernel