+AS_t model_dijkstra_create(void){
+ return new simgrid::surf::AsDijkstra(0);
+}
+
+AS_t model_dijkstracache_create(void){
+ return new simgrid::surf::AsDijkstra(1);
+}
+
+void model_dijkstra_both_end(AS_t as)
+{
+ simgrid::surf::AsDijkstra *THIS_AS
+ = static_cast<simgrid::surf::AsDijkstra*>(as);
+ xbt_node_t node = NULL;
+ unsigned int cursor2;
+ xbt_dynar_t nodes = NULL;
+
+ /* Create the topology graph */
+ if(!THIS_AS->p_routeGraph)
+ THIS_AS->p_routeGraph = xbt_graph_new_graph(1, NULL);
+ if(!THIS_AS->p_graphNodeMap)
+ THIS_AS->p_graphNodeMap = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
+
+ if (THIS_AS->m_cached && !THIS_AS->p_routeCache)
+ THIS_AS->p_routeCache = xbt_dict_new_homogeneous(&route_cache_elem_free);
+
+ /* Add the loopback if needed */
+ if (routing_platf->p_loopback && as->p_hierarchy == SURF_ROUTING_BASE)
+ THIS_AS->addLoopback();
+
+ /* initialize graph indexes in nodes after graph has been built */
+ nodes = xbt_graph_get_nodes(THIS_AS->p_routeGraph);
+
+ xbt_dynar_foreach(nodes, cursor2, node) {
+ graph_node_data_t data = (graph_node_data_t) xbt_graph_node_get_data(node);
+ data->graph_id = cursor2;
+ }
+}
+