Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use the function sg_platf_new_linkctn when parsing platform
[simgrid.git] / src / surf / surfxml_parse.c
index 8a1c8d0..4e0804f 100644 (file)
@@ -66,7 +66,6 @@ int surf_parse_get_int(const char *string) {
 /* make sure these symbols are defined as strong ones in this file so that the linker can resolve them */
 xbt_dynar_t STag_surfxml_route_cb_list = NULL;
 xbt_dynar_t ETag_surfxml_route_cb_list = NULL;
-xbt_dynar_t STag_surfxml_link_ctn_cb_list = NULL;
 xbt_dynar_t ETag_surfxml_link_ctn_cb_list = NULL;
 xbt_dynar_t STag_surfxml_process_cb_list = NULL;
 xbt_dynar_t ETag_surfxml_process_cb_list = NULL;
@@ -245,10 +244,6 @@ void surf_parse_init_callbacks(void)
 
     STag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL);
     ETag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL);
-    STag_surfxml_link_ctn_cb_list =
-        xbt_dynar_new(sizeof(void_f_void_t), NULL);
-    ETag_surfxml_link_ctn_cb_list =
-        xbt_dynar_new(sizeof(void_f_void_t), NULL);
     STag_surfxml_process_cb_list =
         xbt_dynar_new(sizeof(void_f_void_t), NULL);
     ETag_surfxml_process_cb_list =
@@ -310,8 +305,6 @@ void surf_parse_free_callbacks(void)
 
   xbt_dynar_free(&STag_surfxml_route_cb_list);
   xbt_dynar_free(&ETag_surfxml_route_cb_list);
-  xbt_dynar_free(&STag_surfxml_link_ctn_cb_list);
-  xbt_dynar_free(&ETag_surfxml_link_ctn_cb_list);
   xbt_dynar_free(&STag_surfxml_process_cb_list);
   xbt_dynar_free(&ETag_surfxml_process_cb_list);
   xbt_dynar_free(&STag_surfxml_argument_cb_list);
@@ -406,7 +399,7 @@ void ETag_surfxml_host(void)    {
 }
 
 void STag_surfxml_host_link(void){
-  XBT_INFO("Create a Host_link for %s",A_surfxml_host_link_id);
+  XBT_DEBUG("Create a Host_link for %s",A_surfxml_host_link_id);
   s_sg_platf_host_link_cbarg_t host_link;
   memset(&host_link,0,sizeof(host_link));
 
@@ -417,7 +410,7 @@ void STag_surfxml_host_link(void){
 }
 
 void ETag_surfxml_host_link(void){
-  XBT_INFO("End create a Host_link for %s",A_surfxml_host_link_id);
+  XBT_DEBUG("End create a Host_link for %s",A_surfxml_host_link_id);
 }
 
 void STag_surfxml_router(void){
@@ -483,6 +476,23 @@ void ETag_surfxml_cluster(void){
   /* nothing I can think of */
 }
 
+void STag_surfxml_cabinet(void){
+  s_sg_platf_cabinet_cbarg_t cabinet;
+  memset(&cabinet,0,sizeof(cabinet));
+  cabinet.id = A_surfxml_cabinet_id;
+  cabinet.prefix = A_surfxml_cabinet_prefix;
+  cabinet.suffix = A_surfxml_cabinet_suffix;
+  cabinet.power = surf_parse_get_double(A_surfxml_cabinet_power);
+  cabinet.bw = surf_parse_get_double(A_surfxml_cabinet_bw);
+  cabinet.lat = surf_parse_get_double(A_surfxml_cabinet_lat);
+  cabinet.radical = A_surfxml_cabinet_radical;
+
+  sg_platf_new_cabinet(&cabinet);
+}
+void ETag_surfxml_cabinet(void){
+  /* nothing I can think of */
+}
+
 void STag_surfxml_peer(void){
   s_sg_platf_peer_cbarg_t peer;
   memset(&peer,0,sizeof(peer));
@@ -495,7 +505,6 @@ void STag_surfxml_peer(void){
   peer.availability_trace = tmgr_trace_new_from_file(A_surfxml_peer_availability_file);
   peer.state_trace = tmgr_trace_new_from_file(A_surfxml_peer_state_file);
 
-  surfxml_call_cb_functions(STag_surfxml_peer_cb_list);
   sg_platf_new_peer(&peer);
 }
 void ETag_surfxml_peer(void){
@@ -554,6 +563,31 @@ void ETag_surfxml_link(void){
   current_property_set = NULL;
 }
 
+void STag_surfxml_link_ctn(void){
+  s_sg_platf_linkctn_cbarg_t linkctn;
+  memset(&linkctn,0,sizeof(linkctn));
+
+  linkctn.id = A_surfxml_link_ctn_id;
+
+  switch (A_surfxml_link_ctn_direction) {
+  case AU_surfxml_link_ctn_direction:
+  case A_surfxml_link_ctn_direction_NONE:
+    linkctn.direction = SURF_LINK_DIRECTION_NONE;
+    break;
+  case A_surfxml_link_ctn_direction_UP:
+    linkctn.direction = SURF_LINK_DIRECTION_UP;
+    break;
+  case A_surfxml_link_ctn_direction_DOWN:
+    linkctn.direction = SURF_LINK_DIRECTION_DOWN;
+    break;
+  }
+  sg_platf_new_linkctn(&linkctn);
+
+}
+
+void ETag_surfxml_link_ctn(void){
+ // NOTHING TO DO
+}
 void ETag_surfxml_backbone(void){
   s_sg_platf_link_cbarg_t link;
   memset(&link,0,sizeof(link));
@@ -574,9 +608,6 @@ void ETag_surfxml_backbone(void){
 void STag_surfxml_route(void){
   surfxml_call_cb_functions(STag_surfxml_route_cb_list);
 }
-void STag_surfxml_link_ctn(void){
-  surfxml_call_cb_functions(STag_surfxml_link_ctn_cb_list);
-}
 void STag_surfxml_process(void){
   surfxml_call_cb_functions(STag_surfxml_process_cb_list);
 }
@@ -637,7 +668,6 @@ void STag_surfxml_random(void){
   void type##Tag_surfxml_##name(void)
 
 parse_method(E, route);
-parse_method(E, link_ctn);
 parse_method(E, process);
 parse_method(E, argument);
 parse_method(E, prop);