XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(res_host);
-void surf_host_model_init_current_default()
-{
- simgrid::config::set_default<bool>("network/crosstraffic", true);
- auto host_model = std::make_shared<simgrid::kernel::resource::HostCLM03Model>("Host_CLM03");
- auto* engine = simgrid::kernel::EngineImpl::get_instance();
- engine->add_model(host_model);
- engine->get_netzone_root()->set_host_model(host_model);
- surf_cpu_model_init_Cas01();
- surf_disk_model_init_S19();
- surf_network_model_init_LegrandVelho();
-}
-
-void surf_host_model_init_compound()
-{
- auto host_model = std::make_shared<simgrid::kernel::resource::HostCLM03Model>("Host_CLM03");
- auto* engine = simgrid::kernel::EngineImpl::get_instance();
- engine->add_model(host_model);
- engine->get_netzone_root()->set_host_model(host_model);
-}
+SIMGRID_REGISTER_HOST_MODEL(
+ default, "Default host model. Currently, CPU:Cas01, network:LV08 (with cross traffic enabled), and disk:S19", []() {
+ simgrid::config::set_default<bool>("network/crosstraffic", true);
+ auto host_model = std::make_shared<simgrid::kernel::resource::HostCLM03Model>("Host_CLM03");
+ auto* engine = simgrid::kernel::EngineImpl::get_instance();
+ engine->add_model(host_model);
+ engine->get_netzone_root()->set_host_model(host_model);
+ simgrid_cpu_models().by_name("Cas01").init();
+ simgrid_disk_models().by_name("S19").init();
+ simgrid_network_models().by_name("LV08").init();
+ });
+
+SIMGRID_REGISTER_HOST_MODEL(compound,
+ "Host model that is automatically chosen if you change the CPU, network, and disk models",
+ []() {
+ auto host_model =
+ std::make_shared<simgrid::kernel::resource::HostCLM03Model>("Host_CLM03");
+ auto* engine = simgrid::kernel::EngineImpl::get_instance();
+ engine->add_model(host_model);
+ engine->get_netzone_root()->set_host_model(host_model);
+ });
namespace simgrid::kernel::resource {