X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/45e426637aefc9860afe15b75812d48898975fe3..0facf52013684615c801816de974754778c9474a:/src/kernel/EngineImpl.cpp diff --git a/src/kernel/EngineImpl.cpp b/src/kernel/EngineImpl.cpp index 1956f49336..0635354b61 100644 --- a/src/kernel/EngineImpl.cpp +++ b/src/kernel/EngineImpl.cpp @@ -53,5 +53,19 @@ void EngineImpl::register_default(const actor::ActorCodeFactory& code) default_function = code; } +void EngineImpl::add_model(std::shared_ptr model, const std::vector& dependencies) +{ + auto model_name = model->get_name(); + xbt_assert(models_prio_.find(model_name) == models_prio_.end(), + "Model %s already exists, use model.set_name() to change its name", model_name.c_str()); + + for (const auto dep : dependencies) { + xbt_assert(models_prio_.find(dep->get_name()) != models_prio_.end(), + "Model %s doesn't exists. Impossible to use it as dependency.", dep->get_name().c_str()); + } + models_.push_back(model.get()); + models_prio_[model_name] = std::move(model); +} + } // namespace kernel } // namespace simgrid