import io.netty.channel.ChannelHandlerContext;
-import java.util.Stack;
+import java.util.Deque;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
public class ScenarioHandler extends Thread {
private static final Logger LOGGER = LoggerFactory.getLogger(ScenarioHandler.class);
- private Stack<ClientEvent> scenario;
+ private Deque<ClientEvent> scenario;
private BlockingQueue<byte[]> ofMsg;
private ChannelHandlerContext ctx;
private int eventNumber;
*
* @param scenario
*/
- public ScenarioHandler(Stack<ClientEvent> scenario) {
+ public ScenarioHandler(Deque<ClientEvent> scenario) {
this.scenario = scenario;
ofMsg = new LinkedBlockingQueue<>();
}
public void run() {
int freezeCounter = 0;
while (!scenario.isEmpty()) {
- LOGGER.debug("Running event #" + eventNumber);
- ClientEvent peek = scenario.peek();
+ LOGGER.debug("Running event #{}", eventNumber);
+ ClientEvent peek = scenario.peekLast();
if (peek instanceof WaitForMessageEvent) {
LOGGER.debug("WaitForMessageEvent");
try {
event.setCtx(ctx);
}
if (peek.eventExecuted()) {
- scenario.pop();
+ scenario.removeLast();
eventNumber++;
freezeCounter = 0;
} else {
freezeCounter++;
}
if (freezeCounter > 2) {
- LOGGER.warn("Scenario freezed: " + freezeCounter);
+ LOGGER.warn("Scenario frozen: {}", freezeCounter);
break;
}
try {
/**
* @return scenario
*/
- public Stack<ClientEvent> getScenario() {
+ public Deque<ClientEvent> getScenario() {
return scenario;
}
/**
* @param scenario scenario filled with desired events
*/
- public void setScenario(Stack<ClientEvent> scenario) {
+ public void setScenario(Deque<ClientEvent> scenario) {
this.scenario = scenario;
}