X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b437bc5ec465df9b77cafc1da5d8dc55162e38e1..7af5f68e45deae49059e1495630646d0c875a6a5:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 4076bf6c1e..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 @@ -378,7 +387,7 @@ void sg_platf_new_cluster(sg_platf_cluster_cbarg_t cluster) } XBT_DEBUG(""); - sg_platf_new_AS_end(); + sg_platf_new_AS_seal(); simgrid::surf::on_cluster(cluster); } @@ -693,7 +702,7 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer) static_cast(current_routing)->router_ = static_cast(xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL)); XBT_DEBUG(""); - sg_platf_new_AS_end(); + sg_platf_new_AS_seal(); XBT_DEBUG(" "); free(router_id); @@ -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); @@ -780,7 +789,7 @@ static void surf_config_models_setup() * * Add a new autonomous system to the platform. Any elements (such as host, * router or sub-AS) added after this call and before the corresponding call - * to sg_platf_new_AS_close() will be added to this AS. + * to sg_platf_new_AS_seal() will be added to this AS. * * Once this function was called, the configuration concerning the used * models cannot be changed anymore. @@ -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,15 +863,17 @@ 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; } /** - * \brief Specify that the current description of AS is finished + * \brief Specify that the description of the current AS is finished * - * Once you've declared all the content of your AS, you have to close + * Once you've declared all the content of your AS, you have to seal * it with this call. Your AS is not usable until you call this function. */ -void sg_platf_new_AS_end() +void sg_platf_new_AS_seal() { xbt_assert(current_routing, "Cannot seal the current AS: none under construction"); current_routing->seal();