X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/982cab33412abf91552a74e5cb567164d4a9a647..818c4f786c737b46d46e9c89e716954b8086cbfb:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 8cfb69d991..1f6a8568b8 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -151,7 +151,15 @@ void sg_platf_new_host(sg_platf_host_cbarg_t host) cpu->setStateTrace(host->state_trace); if (host->speed_trace) cpu->setSpeedTrace(host->speed_trace); - surf_host_model->createHost(host->id, netcard, cpu, host->properties)->attach(h); + surf_host_model->createHost(host->id, netcard, cpu)->attach(h); + + if (host->properties) { + xbt_dict_cursor_t cursor=NULL; + char *key,*data; + xbt_dict_foreach(host->properties,cursor,key,data) + h->setProperty(key,data); + xbt_dict_free(&host->properties); + } if (host->pstate != 0) cpu->setPState(host->pstate); @@ -346,6 +354,7 @@ void sg_platf_new_cluster(sg_platf_cluster_cbarg_t cluster) xbt_free(host_id); rankId++; } + delete radicals; // Add a router. It is magically used thanks to the way in which surf_routing_cluster is written, // and it's very useful to connect clusters together @@ -718,22 +727,22 @@ static void surf_config_models_setup() int storage_id = -1; char *storage_model_name = NULL; - host_model_name = xbt_cfg_get_string(_sg_cfg_set, "host/model"); - vm_model_name = xbt_cfg_get_string(_sg_cfg_set, "vm/model"); - network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model"); - cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model"); - storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/model"); + host_model_name = xbt_cfg_get_string("host/model"); + vm_model_name = xbt_cfg_get_string("vm/model"); + network_model_name = xbt_cfg_get_string("network/model"); + cpu_model_name = xbt_cfg_get_string("cpu/model"); + storage_model_name = xbt_cfg_get_string("storage/model"); /* Check whether we use a net/cpu model differing from the default ones, in which case * we should switch to the "compound" host model to correctly dispatch stuff to * the right net/cpu models. */ - if ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") || - !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) && - xbt_cfg_is_default_value(_sg_cfg_set, "host/model")) { + if ((!xbt_cfg_is_default_value("network/model") || + !xbt_cfg_is_default_value("cpu/model")) && + xbt_cfg_is_default_value("host/model")) { host_model_name = "compound"; - xbt_cfg_set_string(_sg_cfg_set, "host/model", host_model_name); + xbt_cfg_set_string("host/model", host_model_name); } XBT_DEBUG("host model: %s", host_model_name); @@ -788,7 +797,7 @@ static void surf_config_models_setup() * @param AS_id name of this autonomous system. Must be unique in the platform * @param wanted_routing_type one of Full, Floyd, Dijkstra or similar. Full list in the variable routing_models, in src/surf/surf_routing.c */ -void sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS) +simgrid::s4u::As * sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS) { if (!surf_parse_models_setup_already_called) { /* Initialize the surf models. That must be done after we got all config, and before we need the models. @@ -854,6 +863,8 @@ void sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS) simgrid::surf::asCreatedCallbacks(new_as); if (TRACE_is_enabled()) sg_instr_AS_begin(AS); + + return new_as; } /**