Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[surf] Move networkLinkCreatedCallbacks outside of constructor
authorGabriel Corona <gabriel.corona@loria.fr>
Tue, 24 Nov 2015 12:18:37 +0000 (13:18 +0100)
committerGabriel Corona <gabriel.corona@loria.fr>
Tue, 24 Nov 2015 12:18:37 +0000 (13:18 +0100)
src/surf/host_ptask_L07.cpp
src/surf/network_cm02.cpp
src/surf/network_interface.cpp
src/surf/network_ns3.cpp

index 4209f00..0361890 100644 (file)
@@ -344,11 +344,13 @@ Link* NetworkL07Model::createLink(const char *name,
   xbt_assert(!Link::byName(name),
                 "Link '%s' declared several times in the platform file.", name);
 
-  return new LinkL07(this, name, properties,
+  Link* link = new LinkL07(this, name, properties,
                             bw_initial, bw_trace,
                                         lat_initial, lat_trace,
                                         state_initial, state_trace,
                                         policy);
+  surf_callback_emit(networkLinkCreatedCallbacks, link);
+  return link;
 }
 
 void HostL07Model::addTraces()
index c5c242b..1d5b594 100644 (file)
@@ -215,8 +215,10 @@ Link* NetworkCm02Model::createLink(const char *name,
              "Link '%s' declared several times in the platform",
              name);
 
-  return new NetworkCm02Link(this, name, properties, p_maxminSystem, sg_bandwidth_factor * bw_initial, history,
+  Link* link = new NetworkCm02Link(this, name, properties, p_maxminSystem, sg_bandwidth_factor * bw_initial, history,
                                             state_initial, state_trace, bw_initial, bw_trace, lat_initial, lat_trace, policy);
+  surf_callback_emit(networkLinkCreatedCallbacks, link);
+  return link;
 }
 
 void NetworkCm02Model::updateActionsStateLazy(double now, double /*delta*/)
index c9de3c5..380332f 100644 (file)
@@ -181,7 +181,6 @@ Link::Link(NetworkModel *model, const char *name, xbt_dict_t props)
 : Resource(model, name, props)
 , p_latEvent(NULL)
 {
-  surf_callback_emit(networkLinkCreatedCallbacks, this);
   links->insert({name, this});
 
   XBT_DEBUG("Create link '%s'",name);
@@ -194,7 +193,6 @@ Link::Link(NetworkModel *model, const char *name, xbt_dict_t props,
 : Resource(model, name, props, constraint),
   p_latEvent(NULL)
 {
-  surf_callback_emit(networkLinkCreatedCallbacks, this);
   if (state_trace)
     p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, this);
 
index 8eab114..b3cc211 100644 (file)
@@ -305,7 +305,9 @@ Link* NetworkNS3Model::createLink(const char *name,
     XBT_INFO("The NS3 network model doesn't support latency state traces");
   if (state_trace)
     XBT_INFO("The NS3 network model doesn't support link state traces");
-  return new NetworkNS3Link(this, name, properties, bw_initial, lat_initial);
+  Link* link = new NetworkNS3Link(this, name, properties, bw_initial, lat_initial);
+  surf_callback_emit(networkLinkCreatedCallbacks, link);
+  return link;
 }
 
 xbt_dynar_t NetworkNS3Model::getRoute(RoutingEdge *src, RoutingEdge *dst)