Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clean callbacks for the host parsing.
[simgrid.git] / src / surf / network_constant.c
index 866ac41..f4251f0 100644 (file)
@@ -21,14 +21,14 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
 static random_data_t random_latency = NULL;
 static int host_number_int = 0;
 
-static void netcste_count_hosts(void)
+static void netcste_count_hosts(surf_parsing_host_arg_t h)
 {
   host_number_int++;
 }
 
-static void netcste_define_callbacks(const char *file)
+static void netcste_define_callbacks(void)
 {
-  surfxml_add_callback(STag_surfxml_host_cb_list, &netcste_count_hosts);
+  surf_parse_host_add_cb(netcste_count_hosts);
 }
 
 static int netcste_resource_used(void *resource_id)
@@ -41,7 +41,7 @@ static int netcste_action_unref(surf_action_t action)
   action->refcount--;
   if (!action->refcount) {
     xbt_swag_remove(action, action->state_set);
-    free(action);
+    surf_action_free(&action);
     return 1;
   }
   return 0;
@@ -117,7 +117,7 @@ static surf_action_t netcste_communicate(const char *src_name,
 {
   surf_action_network_Constant_t action = NULL;
 
-  XBT_IN4("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
+  XBT_IN("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
 
   action =
       surf_action_new(sizeof(s_surf_action_network_Constant_t), size,
@@ -125,7 +125,7 @@ static surf_action_t netcste_communicate(const char *src_name,
 
   action->suspended = 0;
 
-  action->latency = 1;          //random_generate(random_latency);
+  action->latency = sg_latency_factor;          //random_generate(random_latency);
   action->lat_init = action->latency;
 
   if (action->latency <= 0.0) {
@@ -134,11 +134,18 @@ static surf_action_t netcste_communicate(const char *src_name,
     xbt_swag_insert(action, action->generic_action.state_set);
   }
 
-  XBT_OUT;
+  XBT_OUT();
 
   return (surf_action_t) action;
 }
 
+#ifdef HAVE_TRACING
+static void netcste_action_set_category(surf_action_t action, const char *category)
+{
+  //ignore completely the categories in constant model, they are not traced
+}
+#endif
+
 /* returns an array of link_Constant_t */
 static xbt_dynar_t netcste_get_route(void *src, void *dst)
 {
@@ -184,21 +191,20 @@ static void netcste_finalize(void)
 
 
 
-void surf_network_model_init_Constant(const char *filename)
+void surf_network_model_init_Constant()
 {
   xbt_assert(surf_network_model == NULL);
   if (surf_network_model)
     return;
   surf_network_model = surf_model_init();
 
-  INFO0("Blah");
   surf_network_model->name = "constant time network";
   surf_network_model->action_unref = netcste_action_unref;
   surf_network_model->action_cancel = netcste_action_cancel;
   surf_network_model->action_recycle = net_action_recycle;
   surf_network_model->get_remains = net_action_get_remains;
 #ifdef HAVE_LATENCY_BOUND_TRACKING
-  surf_network_model->get_latency_limited = net_get_link_latency;
+  surf_network_model->get_latency_limited = net_get_link_latency_limited;
 #endif
 
   surf_network_model->model_private->resource_used = netcste_resource_used;
@@ -221,15 +227,18 @@ void surf_network_model_init_Constant(const char *filename)
   surf_network_model->extension.network.get_link_latency =
       netcste_get_link_latency;
   surf_network_model->extension.network.link_shared = link_shared;
+#ifdef HAVE_TRACING
+  surf_network_model->set_category = netcste_action_set_category;
+#endif
 
   if (!random_latency)
     random_latency = random_new(RAND, 100, 0.0, 1.0, .125, .034);
-  netcste_define_callbacks(filename);
+  netcste_define_callbacks();
   xbt_dynar_push(model_list, &surf_network_model);
 
   update_model_description(surf_network_model_description,
                            "Constant", surf_network_model);
 
   xbt_cfg_set_string(_surf_cfg_set, "routing", "none");
-  routing_model_create(sizeof(double), NULL);
+  routing_model_create(sizeof(double), NULL, netcste_get_link_latency);
 }