Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change --surf-path into --cfg=path
[simgrid.git] / src / surf / surf.c
index 564e4a0..a4e1d75 100644 (file)
@@ -125,7 +125,7 @@ const char *surf_action_state_names[6] = {
   "SURF_ACTION_NOT_IN_THE_SYSTEM"
 };
 
-
+/* Don't forget to update the option description in smx_config when you change this */
 s_surf_model_description_t surf_network_model_description[] = {
   {"Constant", NULL, surf_network_model_init_Constant},
   {"CM02", NULL, surf_network_model_init_CM02},
@@ -311,6 +311,8 @@ XBT_LOG_EXTERNAL_CATEGORY(surf_network);
 XBT_LOG_EXTERNAL_CATEGORY(surf_parse);
 XBT_LOG_EXTERNAL_CATEGORY(surf_timer);
 XBT_LOG_EXTERNAL_CATEGORY(surf_workstation);
+XBT_LOG_EXTERNAL_CATEGORY(surf_config);
+
 
 #ifdef HAVE_SDP
 XBT_LOG_EXTERNAL_CATEGORY(surf_sdp_out);
@@ -322,11 +324,6 @@ XBT_LOG_EXTERNAL_CATEGORY(surf_network_gtnets);
 
 void surf_init(int *argc, char **argv)
 {
-  int i, j;
-  char *opt;
-
-  const char *initial_path;
-
   /* Connect our log channels: that must be done manually under windows */
   XBT_LOG_CONNECT(surf_cpu, surf);
   XBT_LOG_CONNECT(surf_kernel, surf);
@@ -337,6 +334,7 @@ void surf_init(int *argc, char **argv)
   XBT_LOG_CONNECT(surf_parse, surf);
   XBT_LOG_CONNECT(surf_timer, surf);
   XBT_LOG_CONNECT(surf_workstation, surf);
+  XBT_LOG_CONNECT(surf_config, surf);
 
 #ifdef HAVE_SDP
   XBT_LOG_CONNECT(surf_sdp_out, surf);
@@ -347,36 +345,12 @@ void surf_init(int *argc, char **argv)
 #endif
 
   xbt_init(argc, argv);
-  if (!surf_path) {
-
-    /* retrieves the current directory of the current process */
-    initial_path = __surf_get_initial_path();
-
-    xbt_assert0((initial_path),
-                "__surf_get_initial_path() failed! Can't resolves current Windows directory");
-
-    surf_path = xbt_dynar_new(sizeof(char *), NULL);
-    xbt_dynar_push(surf_path, &initial_path);
-
-    for (i = 1; i < *argc; i++) {
-      if (!strncmp(argv[i], "--surf-path=", strlen("--surf-path="))) {
-        opt = strchr(argv[i], '=');
-        opt++;
-        xbt_dynar_push(surf_path, &opt);
-        /*remove this from argv */
-        for (j = i + 1; j < *argc; j++) {
-          argv[j - 1] = argv[j];
-        }
-        argv[j - 1] = NULL;
-        (*argc)--;
-        i--;                    /* compensate effect of next loop incrementation */
-      }
-    }
-  }
   if (!model_list)
     model_list = xbt_dynar_new(sizeof(surf_model_private_t), NULL);
   if (!history)
     history = tmgr_history_new();
+
+  surf_config_init(argc,argv);
 }
 
 static char *path_name = NULL;
@@ -425,6 +399,8 @@ void surf_exit(void)
   unsigned int iter;
   surf_model_t model = NULL;
 
+  surf_config_finalize();
+
   xbt_dynar_foreach(model_list, iter, model) {
     model->common_private->finalize();
   }