bdi-network-resilience

Execution delays

11/15/2016 3:00:16 PM

Details

diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/AbstractRouterComponent.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/AbstractRouterComponent.java
index d63b533..160d8f1 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/AbstractRouterComponent.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/AbstractRouterComponent.java
@@ -29,8 +29,7 @@ import br.ufrgs.inf.bdinetr.domain.RouterComponent;
 /**
  * @author Ingrid Nunes
  */
-public abstract class AbstractRouterComponent extends Observable implements
-		RouterComponent {
+public abstract class AbstractRouterComponent extends Observable implements RouterComponent {
 
 	protected final Router router;
 
@@ -38,4 +37,12 @@ public abstract class AbstractRouterComponent extends Observable implements
 		this.router = router;
 	}
 
+	protected synchronized void delay(long sec) {
+		try {
+			Thread.sleep(sec * 1000);
+		} catch (InterruptedException e) {
+			// TODO: handle exception
+		}
+	}
+
 }
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyAnomalyDetection.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyAnomalyDetection.java
index af85356..7ef7e5a 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyAnomalyDetection.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyAnomalyDetection.java
@@ -33,6 +33,8 @@ import br.ufrgs.inf.bdinetr.domain.Router;
  * @author Ingrid Nunes
  */
 public class DummyAnomalyDetection extends AbstractRouterComponent implements AnomalyDetection {
+	
+	public static final long DELAY = 10;
 
 	private boolean first;
 	private boolean mode;
@@ -59,6 +61,7 @@ public class DummyAnomalyDetection extends AbstractRouterComponent implements An
 				}
 			}
 		}
+		delay(DELAY);
 		return intrusions;
 	}
 
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyClassifier.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyClassifier.java
index 0f8de5b..f5cf24b 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyClassifier.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyClassifier.java
@@ -33,6 +33,8 @@ import br.ufrgs.inf.bdinetr.domain.Router;
  * @author Ingrid Nunes
  */
 public class DummyClassifier extends AbstractRouterComponent implements Classifier {
+	
+	public static final long DELAY = 30;
 
 	public DummyClassifier(Router router) {
 		super(router);
@@ -50,6 +52,7 @@ public class DummyClassifier extends AbstractRouterComponent implements Classifi
 			flows.add(new Flow(new Ip("DDoS3"), 80, new Ip("victim2"), 80,
 					"http"));
 		}
+		delay(DELAY);
 		return flows;
 	}
 
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyRateLimiter.java b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyRateLimiter.java
index 9faba12..0132665 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyRateLimiter.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/domain/dummy/DummyRateLimiter.java
@@ -37,6 +37,8 @@ import br.ufrgs.inf.bdinetr.domain.Router;
  */
 public class DummyRateLimiter extends AbstractRouterComponent implements
 		RateLimiter, Observable {
+	
+	public static final long DELAY = 2;
 
 	private final Map<Flow, Integer> rateLimitedflows;
 	private final Map<Ip, Integer> rateLimitedIps;
@@ -52,16 +54,19 @@ public class DummyRateLimiter extends AbstractRouterComponent implements
 	@Override
 	public void limitFlow(Flow flow, int rate) {
 		this.rateLimitedflows.put(flow, rate);
+		delay(DELAY);
 	}
 
 	@Override
 	public void limitIp(Ip ip, int rate) {
 		this.rateLimitedIps.put(ip, rate);
+		delay(DELAY);
 	}
 
 	@Override
 	public void limitLink(Link link, int rate) {
 		this.rateLimitedLinks.put(link, rate);
+		delay(DELAY);
 		setChanged();
 		notifyObservers(new LimitLinkEvent(link));
 	}