namespace simgrid {
namespace surf {
-surf_callback(void, simgrid::surf::RoutingEdge*) routingEdgeCreatedCallbacks;
-surf_callback(void, simgrid::surf::As*) asCreatedCallbacks;
+simgrid::surf::signal<void(simgrid::surf::RoutingEdge*)> routingEdgeCreatedCallbacks;
+simgrid::surf::signal<void(simgrid::surf::As*)> asCreatedCallbacks;
}
}
* @ingroup SURF_build_api
* @brief A library containing all known hosts
*/
-xbt_lib_t host_lib;
+xbt_dict_t host_list;
int SURF_HOST_LEVEL; //Surf host level
int COORD_HOST_LEVEL=0; //Coordinates level
SURF_NETWORK_ELEMENT_HOST,
current_routing);
routingEdge->setId(current_routing->parsePU(routingEdge));
- sg_host_edge_set(sg_host_by_name_or_create(host->id), routingEdge);
+ sg_host_t h = sg_host_by_name_or_create(host->id);
+ sg_host_edge_set(h, routingEdge);
XBT_DEBUG("Having set name '%s' id '%d'", host->id, routingEdge->getId());
simgrid::surf::routingEdgeCreatedCallbacks(routingEdge);
}
xbt_dynar_shrink(ctn, 0);
xbt_dynar_free(&ctn_str);
- xbt_lib_set(host_lib, host->id, COORD_HOST_LEVEL, (void *) ctn);
+ h->extension_set(COORD_HOST_LEVEL, (void *) ctn);
XBT_DEBUG("Having set host coordinates for '%s'",host->id);
}
xbt_dynar_t surf_AS_get_hosts(simgrid::surf::As *as)
{
xbt_dynar_t elms = as->p_indexNetworkElm;
- sg_routing_edge_t relm;
- xbt_dictelm_t delm;
- int index;
int count = xbt_dynar_length(elms);
- xbt_dynar_t res = xbt_dynar_new(sizeof(xbt_dictelm_t), NULL);
- for (index = 0; index < count; index++) {
- relm = xbt_dynar_get_as(elms, index, simgrid::surf::RoutingEdge*);
- delm = xbt_lib_get_elm_or_null(host_lib, relm->getName());
+ xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t), NULL);
+ for (int index = 0; index < count; index++) {
+ sg_routing_edge_t relm =
+ xbt_dynar_get_as(elms, index, simgrid::surf::RoutingEdge*);
+ sg_host_t delm = simgrid::Host::by_name_or_null(relm->getName());
if (delm!=NULL) {
xbt_dynar_push(res, &delm);
}