Browse Source

Extended TimerHandler Interface to support canceling of TimerHandler.
Migrate testcases and example to new interface.

markus.muehlbrandt@itemis.de 13 years ago
parent
commit
f625b21967

+ 2 - 0
Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/ITimerHandler.java

@@ -15,4 +15,6 @@ public interface ITimerHandler {
 	public void setTimer(TimeEvent event, long time, long cycleStartTime);
 	
 	public void resetTimer(TimeEvent event);
+	
+	public void cancel();
 }

+ 7 - 0
Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/TimerHandler.java

@@ -66,4 +66,11 @@ public class TimerHandler implements ITimerHandler {
 		}
 		timerTaskMap.remove(event);
 	}
+	
+	/**
+	 * Cancels all running TimersTasks
+	 */
+	public void cancel() {
+		timer.cancel();
+	}
 }

+ 2 - 2
Examples/org.yakindu.sct.generator.java.trafficlight/src/org/yakindu/sct/examples/java/trafficlight/CrossingDemo.java

@@ -66,8 +66,7 @@ public class CrossingDemo {
 		Thread thread = new Thread() {
 			@Override
 			public void run() {
-				TimerHandler timerHandler = new TimerHandler(statemachine);
-				statemachine.setTimerHandler(timerHandler);
+				statemachine.setTimerHandler(new TimerHandler(statemachine));
 				statemachine.entry();
 				while (!isInterrupted()) {
 					statemachine.runCycle();
@@ -82,6 +81,7 @@ public class CrossingDemo {
 						interrupt();
 					}
 				}
+				statemachine.getTimerHandler().cancel();
 			}
 		};
 		thread.start();

+ 2 - 0
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/ITimerHandler.xpt

@@ -25,6 +25,8 @@ public interface ITimerHandler {
 	public void setTimer(TimeEvent event, long time, long cycleStartTime);
 	
 	public void resetTimer(TimeEvent event);
+	
+	public void cancel();
 }
 «ENDFILE-»
 «ENDDEFINE»

+ 7 - 0
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/TimerHandler.xpt

@@ -76,6 +76,13 @@ public class TimerHandler implements ITimerHandler {
 		}
 		timerTaskMap.remove(event);
 	}
+	
+	/**
+	 * Cancels all running TimersTasks
+	 */
+	public void cancel() {
+		timer.cancel();
+	}
 }
 «ENDFILE-»
 «ENDDEFINE»

+ 2 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/ITimerHandler.java

@@ -15,4 +15,6 @@ public interface ITimerHandler {
 	public void setTimer(TimeEvent event, long time, long cycleStartTime);
 	
 	public void resetTimer(TimeEvent event);
+	
+	public void cancel();
 }

+ 7 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/TimerHandler.java

@@ -66,4 +66,11 @@ public class TimerHandler implements ITimerHandler {
 		}
 		timerTaskMap.remove(event);
 	}
+	
+	/**
+	 * Cancels all running TimersTasks
+	 */
+	public void cancel() {
+		timer.cancel();
+	}
 }

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestLocalActionsCycleBasedStatemachine.java

@@ -49,6 +49,7 @@ public class TestLocalActionsCycleBasedStatemachine {
 
 	@After
 	public void tearDown() {
+		statemachine.getTimerHandler().cancel();
 		statemachine = null;
 	}