policy_initial);
}
-static int nb_link = 0;
+static int nb_link;
+static int link_name_capacity;
static char **link_name = NULL;
static int src_id = -1;
static int dst_id = -1;
src_id = network_card_new(A_surfxml_route_src);
dst_id = network_card_new(A_surfxml_route_dst);
nb_link = 0;
- link_name = NULL;
+ link_name_capacity = 16;
+ link_name = xbt_new(char*, link_name_capacity);
}
static void parse_route_elem(void)
{
- nb_link++;
- link_name = xbt_realloc(link_name, (nb_link) * sizeof(char *));
- link_name[(nb_link) - 1] = xbt_strdup(A_surfxml_route_element_name);
+ if (nb_link == link_name_capacity) {
+ link_name_capacity *= 2;
+ link_name = xbt_realloc(link_name, (link_name_capacity) * sizeof(char *));
+ }
+ link_name[nb_link++] = xbt_strdup(A_surfxml_route_element_name);
}
static void parse_route_set_route(void)
action->generic_action.cost = size;
action->generic_action.remains = size;
action->generic_action.max_duration = NO_MAX_DURATION;
- action->generic_action.start = -1.0;
+ action->generic_action.start = surf_get_clock();
action->generic_action.finish = -1.0;
action->generic_action.resource_type =
(surf_resource_t) surf_network_resource;
get_resource_name;
surf_network_resource->common_public->action_get_state =
surf_action_get_state;
+ surf_network_resource->common_public->action_get_start_time =
+ surf_action_get_start_time;
+ surf_network_resource->common_public->action_get_finish_time =
+ surf_action_get_finish_time;
surf_network_resource->common_public->action_free = action_free;
surf_network_resource->common_public->action_use = action_use;
surf_network_resource->common_public->action_cancel = action_cancel;