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());
}
}