Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add networkCommunicateCallback, NetworkLink::updateLatency and NetworkLink::updateBan...
[simgrid.git] / src / surf / network_interface.cpp
index 244b688..39195ef 100644 (file)
@@ -19,8 +19,9 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network, surf,
 
 surf_callback(void, NetworkLinkPtr) networkLinkCreatedCallbacks;
 surf_callback(void, NetworkLinkPtr) networkLinkDestructedCallbacks;
-surf_callback(void, NetworkLinkPtr) networkLinkStateChangedCallbacks;
-surf_callback(void, NetworkActionPtr) networkActionStateChangedCallbacks;
+surf_callback(void, NetworkLinkPtr, e_surf_resource_state_t, e_surf_resource_state_t) networkLinkStateChangedCallbacks;
+surf_callback(void, NetworkActionPtr, e_surf_action_state_t, e_surf_action_state_t) networkActionStateChangedCallbacks;
+surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate) networkCommunicateCallbacks;
 
 /*********
  * Model *
@@ -28,13 +29,6 @@ surf_callback(void, NetworkActionPtr) networkActionStateChangedCallbacks;
 
 NetworkModelPtr surf_network_model = NULL;
 
-xbt_dynar_t NetworkModel::getRoute(RoutingEdgePtr src, RoutingEdgePtr dst)
-{
-  xbt_dynar_t route = NULL;
-  routing_platf->getRouteAndLatency(src, dst, &route, NULL);
-  return route;
-}
-
 double NetworkModel::latencyFactor(double /*size*/) {
   return sg_latency_factor;
 }
@@ -96,8 +90,9 @@ bool NetworkLink::isShared()
 }
 
 void NetworkLink::setState(e_surf_resource_state_t state){
+  e_surf_resource_state_t old = Resource::getState();
   Resource::setState(state);
-  surf_callback_emit(networkLinkStateChangedCallbacks, this);
+  surf_callback_emit(networkLinkStateChangedCallbacks, this, old, state);
 }
 
 /**********
@@ -105,8 +100,9 @@ void NetworkLink::setState(e_surf_resource_state_t state){
  **********/
 
 void NetworkAction::setState(e_surf_action_state_t state){
+  e_surf_action_state_t old = getState();
   Action::setState(state);
-  surf_callback_emit(networkActionStateChangedCallbacks, this);
+  surf_callback_emit(networkActionStateChangedCallbacks, this, old, state);
 }
 
 #endif /* NETWORK_INTERFACE_CPP_ */