Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Finalize reservation surf plugin
[simgrid.git] / examples / java / reservationSurfPlugin / ReservationPlugin.java
index 8a637a8..8f3b6b7 100644 (file)
@@ -7,55 +7,34 @@ import java.util.HashMap;
 public class ReservationPlugin extends Plugin {
 
   public ReservationPlugin() {
-    activateCpuCreatedCallback();
-    activateCpuDestructedCallback();
-    activateCpuStateChangedCallback();
-    activateCpuActionStateChangedCallback();
-
-    activateNetworkLinkCreatedCallback();
-    activateNetworkLinkDestructedCallback();
-    activateNetworkLinkStateChangedCallback();
-    activateNetworkActionStateChangedCallback();
-
-  }
-
-  public void init() {
-    NetworkLink[] route = Surf.getRoute("Jacquelin", "Boivin");
-    Msg.info("RouteLength:"+route.length);
-    Msg.info("RouteName0:"+route[0].getName());
-    Msg.info("RouteName1:"+route[1].getName());
+    activateNetworkCommunicateCallback();
   }
 
-  public void cpuCreatedCallback(Cpu cpu) {
-    Msg.info("Trace: Cpu created "+cpu.getName());
-  }
-
-  public void cpuDestructedCallback(Cpu cpu) {
-    Msg.info("Trace: Cpu destructed "+cpu.getName());
-  }
-
-  public void cpuStateChangedCallback(Cpu cpu, ResourceState old, ResourceState cur){
-    Msg.info("Trace: Cpu state changed "+cpu.getName());
-  }
-
-  public void cpuActionStateChangedCallback(CpuAction action, ActionState old, ActionState cur){
-    Msg.info("Trace: CpuAction state changed "+action.getModel().getName());
-  }
-
-  public void networkLinkCreatedCallback(NetworkLink link) {
-    Msg.info("Trace: NetworkLink created "+link.getName());
-  }
+  //HashMap<String,Reservation> reservations;
+  double bandwidth = 0;
+  String src = "";
+  String dst = "";
 
-  public void networkLinkDestructedCallback(NetworkLink link) {
-    Msg.info("Trace: NetworkLink destructed "+link.getName());
+  public void limitBandwidthActions(String src, String dst, double bandwidth){
+    this.bandwidth = bandwidth;
+    this.src = src;
+    this.dst = dst;
   }
 
-  public void networkLinkStateChangedCallback(NetworkLink link, ResourceState old, ResourceState cur){
-    Msg.info("Trace: NetworkLink state changed "+link.getName());
+  public void updateBandwidthRoute(String src, String dst, double bandwidth){
+    NetworkLink[] route = Surf.getRoute(src, dst);
+    for (int i =0; i<route.length; i++){
+      Msg.info("Trace: bandwidth of "+route[i].getName()+" before "+route[i].getBandwidth());
+      route[i].updateBandwidth(bandwidth);//getName();
+      Msg.info("Trace: bandwidth of "+route[i].getName()+" after "+route[i].getBandwidth());
+    }
   }
 
-  public void networkActionStateChangedCallback(NetworkAction action, ActionState old, ActionState cur){
-    Msg.info("Trace: NetworkAction state changed "+action.getModel().getName());
+  public void networkCommunicateCallback(NetworkAction action, RoutingEdge src, RoutingEdge dst, double size, double rate){
+    if (src.getName().equals(this.src) && dst.getName().equals(this.dst)) {
+      action.setBound(this.bandwidth);
+    }
+    Msg.info("Trace: Communicate message of size "+size+" with rate "+rate+" and bound "+action.getBound()+" from "+src.getName()+" to "+dst.getName());
   }
 
 }