Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
In <host> and <link>, attributes availability and state are gone.
[simgrid.git] / src / surf / network_ib.cpp
index 8c64c0c..43efa04 100644 (file)
@@ -55,12 +55,12 @@ static void IB_action_init_callback(
   if(((NetworkIBModel*)surf_network_model)->active_nodes==NULL)
     xbt_die("IB comm added, without any node connected !");
   
-  IBNode* act_src= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, src->getName());
+  IBNode* act_src= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, src->name());
   if(act_src==NULL)
     xbt_die("could not find src node active comms !");
   //act_src->rate=rate;
   
-  IBNode* act_dst= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, dst->getName());
+  IBNode* act_dst= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, dst->name());
   if(act_dst==NULL)
     xbt_die("could not find dst node active comms !");  
  // act_dst->rate=rate;
@@ -94,8 +94,9 @@ void surf_network_model_init_IB(void)
 
   if (surf_network_model)
     return;
+
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkIBModel();
-  net_define_callbacks();
   xbt_dynar_push(all_existing_models, &surf_network_model);
   networkActionStateChangedCallbacks.connect(IB_action_state_changed_callback);
   networkCommunicateCallbacks.connect(IB_action_init_callback);
@@ -104,6 +105,8 @@ void surf_network_model_init_IB(void)
   
 }
 
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
+
 namespace simgrid {
 namespace surf {
 
@@ -115,8 +118,8 @@ NetworkIBModel::NetworkIBModel()
   const char* IB_factors_string=sg_cfg_get_string("smpi/IB_penalty_factors");
   xbt_dynar_t radical_elements = xbt_str_split(IB_factors_string, ";");
   
-  if(xbt_dynar_length(radical_elements)!=3)
-    surf_parse_error("smpi/IB_penalty_factors should be provided and contain 3 elements, semi-colon separated : for example 0.965;0.925;1.35");
+  surf_parse_assert(xbt_dynar_length(radical_elements)==3,
+    "smpi/IB_penalty_factors should be provided and contain 3 elements, semi-colon separated : for example 0.965;0.925;1.35");
   
   Be = xbt_str_parse_double(xbt_dynar_get_as(radical_elements, 0, char *), "First part of smpi/IB_penalty_factors is not numerical: %s");
   Bs = xbt_str_parse_double(xbt_dynar_get_as(radical_elements, 1, char *), "Second part of smpi/IB_penalty_factors is not numerical: %s");