/** \ingroup m_host_management * \brief Return a dynar containing all the hosts declared at a given point of time */ xbt_dynar_t MSG_hosts_as_dynar(void) { xbt_lib_cursor_t cursor; char *key; void **data; xbt_dynar_t res = xbt_dynar_new(sizeof(msg_host_t),NULL); xbt_lib_foreach(host_lib, cursor, key, data) { if(routing_get_network_element_type(key) == SURF_NETWORK_ELEMENT_HOST) xbt_dynar_push(res, data + MSG_HOST_LEVEL); } return res; }
msg_host_t *MSG_get_host_table(void) { void **array; int i = 0; xbt_lib_cursor_t cursor; char *key; void **data; if (xbt_lib_length(host_lib) == 0) return NULL; else array = xbt_new0(void *, xbt_lib_length(host_lib)); xbt_lib_foreach(host_lib, cursor, key, data) { if(routing_get_network_element_type(key) == SURF_NETWORK_ELEMENT_HOST) array[i++] = data[MSG_HOST_LEVEL]; } return (msg_host_t *)array; }
int main(int argc, char **argv) { /* initialisation of SD */ int size; SD_init(&argc, argv); xbt_lib_cursor_t cursor = NULL; char *key, *data; /* creation of the environment */ SD_create_environment(argv[1]); size = xbt_lib_length(host_lib) + xbt_lib_length(as_router_lib); printf("Workstation number: %d, link number: %d, elmts number: %d\n", SD_workstation_get_number(), SD_link_get_number(), size); xbt_lib_foreach(host_lib, cursor, key, data) { printf(" - Seen: \"%s\" is type : %d\n", key, (int) routing_get_network_element_type(key)); }
xbt_lib_foreach(as_router_lib, cursor, key, data) { printf(" - Seen: \"%s\" is type : %d\n", key, (int) routing_get_network_element_type(key)); }