Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Finalize reservation surf plugin
[simgrid.git] / examples / java / reservationSurfPlugin / ReservationPlugin.java
1 package reservationSurfPlugin;
2
3 import org.simgrid.surf.*;
4 import org.simgrid.msg.Msg;
5 import java.util.HashMap;
6
7 public class ReservationPlugin extends Plugin {
8
9   public ReservationPlugin() {
10     activateNetworkCommunicateCallback();
11   }
12
13   //HashMap<String,Reservation> reservations;
14   double bandwidth = 0;
15   String src = "";
16   String dst = "";
17
18   public void limitBandwidthActions(String src, String dst, double bandwidth){
19     this.bandwidth = bandwidth;
20     this.src = src;
21     this.dst = dst;
22   }
23
24   public void updateBandwidthRoute(String src, String dst, double bandwidth){
25     NetworkLink[] route = Surf.getRoute(src, dst);
26     for (int i =0; i<route.length; i++){
27       Msg.info("Trace: bandwidth of "+route[i].getName()+" before "+route[i].getBandwidth());
28       route[i].updateBandwidth(bandwidth);//getName();
29       Msg.info("Trace: bandwidth of "+route[i].getName()+" after "+route[i].getBandwidth());
30     }
31   }
32
33   public void networkCommunicateCallback(NetworkAction action, RoutingEdge src, RoutingEdge dst, double size, double rate){
34     if (src.getName().equals(this.src) && dst.getName().equals(this.dst)) {
35       action.setBound(this.bandwidth);
36     }
37     Msg.info("Trace: Communicate message of size "+size+" with rate "+rate+" and bound "+action.getBound()+" from "+src.getName()+" to "+dst.getName());
38   }
39
40 }