static char *gw_dst = NULL; /* temporary store the gateway destination name of a route */
static xbt_dynar_t link_list = NULL; /* temporary store of current list link of a route */
-static xbt_dict_t coordinates = NULL;
-
static double eculidean_dist_comp(int index, xbt_dynar_t src, xbt_dynar_t dst)
{
{
double euclidean_dist;
xbt_dynar_t src_ctn, dst_ctn;
- src_ctn = xbt_dict_get(coordinates, src);
- dst_ctn = xbt_dict_get(coordinates, dst);
+ src_ctn = xbt_lib_get_or_null(host_lib, src, COORD_HOST_LEVEL);
+ if(!src_ctn) src_ctn = xbt_lib_get_or_null(as_router_lib, src, COORD_ASR_LEVEL);
+ dst_ctn = xbt_lib_get_or_null(host_lib, dst, COORD_HOST_LEVEL);
+ if(!dst_ctn) dst_ctn = xbt_lib_get_or_null(as_router_lib, dst, COORD_ASR_LEVEL);
+
+ if(dst_ctn == NULL || src_ctn == NULL)
+ xbt_die("Coord src '%s' :%p dst '%s' :%p",src,src_ctn,dst,dst_ctn);
euclidean_dist = sqrt (eculidean_dist_comp(0,src_ctn,dst_ctn)+eculidean_dist_comp(1,src_ctn,dst_ctn))
+fabs(atof(xbt_dynar_get_as(src_ctn, 2, char *)))+fabs(atof(xbt_dynar_get_as(dst_ctn, 2, char *)));
if (strcmp(coord,"")) {
xbt_dynar_t ctn = xbt_str_split_str(coord, " ");
xbt_dynar_shrink(ctn,0);
- xbt_dict_set (coordinates,host_id,ctn,NULL);
+ xbt_lib_set(host_lib, host_id, COORD_HOST_LEVEL, ctn);
}
*/
}
if (strcmp(coord,"")) {
xbt_dynar_t ctn = xbt_str_split_str(coord, " ");
xbt_dynar_shrink(ctn, 0);
- xbt_dict_set(coordinates, host_id, ctn, xbt_dynar_free_voidp);
+ xbt_lib_set(host_lib,host_id,COORD_HOST_LEVEL,(void *) ctn);
}
}
XBT_DEBUG("%s coordinates : %s", A_surfxml_AS_id, A_surfxml_AS_coordinates);
xbt_dynar_t ctn = xbt_str_split_str(A_surfxml_AS_coordinates, " ");
xbt_dynar_shrink(ctn, 0);
- xbt_dict_set(coordinates, A_surfxml_AS_id, ctn, xbt_dynar_free_voidp);
+ xbt_lib_set(as_router_lib,A_surfxml_AS_id,COORD_ASR_LEVEL,(void *) ctn);
}
}
{
/* delete recursibly all the tree */
_finalize(global_routing->root);
- xbt_dict_free(&(coordinates));
/* delete last_route */
xbt_dynar_free(&(global_routing->last_route));
/* delete global routing structure */
/* no current routing at moment */
current_routing = NULL;
- coordinates = xbt_dict_new();
-
/* parse generic elements */
surfxml_add_callback(STag_surfxml_host_cb_list, &parse_S_host_XML);
surfxml_add_callback(ETag_surfxml_host_cb_list, &parse_E_host_XML);
xbt_dynar_t link_route_to_test = xbt_dynar_new(global_routing->size_of_link, NULL);
xbt_dynar_foreach(route->generic_route.link_list,i,link_name)
{
- void *link = xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
xbt_assert1(link,"Link : '%s' doesn't exists.",link_name);
xbt_dynar_push(link_route_to_test,&link);
}
for(i=xbt_dynar_length(route->generic_route.link_list) ;i>0 ;i--)
{
link_name = xbt_dynar_get_as(route->generic_route.link_list,i-1,void *);
- void *link = xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
xbt_assert1(link,"Link : '%s' doesn't exists.",link_name);
xbt_dynar_push(link_route_to_test,&link);
}
xbt_dynar_t link_route_to_test = xbt_dynar_new(global_routing->size_of_link, NULL);
xbt_dynar_foreach(route->generic_route.link_list,cpt,link_name)
{
- void *link = xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
xbt_assert1(link,"Link : '%s' doesn't exists.",link_name);
xbt_dynar_push(link_route_to_test,&link);
}
for(i=xbt_dynar_length(route->generic_route.link_list) ;i>0 ;i--)
{
link_name = xbt_dynar_get_as(route->generic_route.link_list,i-1,void *);
- void *link = xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
xbt_assert1(link,"Link : '%s' doesn't exists.",link_name);
xbt_dynar_push(link_route_to_test,&link);
}
char *new_link_name =
remplace(link_name, list_src, rc_src, list_dst, rc_dst);
void *link =
- xbt_dict_get_or_null(surf_network_model->resource_set,
- new_link_name);
+ xbt_lib_get_or_null(link_lib, new_link_name, SURF_LINK_LEVEL);
if (link)
xbt_dynar_push(links_list, &link);
else
xbt_dynar_foreach(links, cpt, link_name) {
void *link =
- xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
if (link) {
if (order)
xbt_dynar_push(links_id, &link);
xbt_dynar_foreach(links, cpt, link_name) {
void *link =
- xbt_dict_get_or_null(surf_network_model->resource_set, link_name);
+ xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
if (link) {
if (order)
xbt_dynar_push(links_id, &link);
SURFXML_BUFFER_SET(AS_id, cluster_id);
#ifdef HAVE_PCRE_LIB
SURFXML_BUFFER_SET(AS_routing, "RuleBased");
+ SURFXML_BUFFER_SET(AS_coordinates, "");
XBT_DEBUG("<AS id=\"%s\"\trouting=\"RuleBased\">", cluster_id);
#else
SURFXML_BUFFER_SET(AS_routing, "Full");
+ SURFXML_BUFFER_SET(AS_coordinates, "");
XBT_DEBUG("<AS id=\"%s\"\trouting=\"Full\">", cluster_id);
#endif
SURFXML_START_TAG(AS);
XBT_DEBUG("<router id=\"%s\"/>", router_id);
SURFXML_BUFFER_SET(router_id, router_id);
+ SURFXML_BUFFER_SET(router_coordinates, "");
SURFXML_START_TAG(router);
SURFXML_END_TAG(router);