1 4 package com.tcsimulator; 5 6 import EDU.oswego.cs.dl.util.concurrent.LinkedQueue; 7 8 9 public class EventQueueHandler implements Runnable { 10 private final LinkedQueue queue; 11 private final Setup setup; 12 13 public EventQueueHandler(LinkedQueue queue, Setup setup) { 14 this.queue = queue; 15 this.setup = setup; 16 } 17 18 public void run() { 19 while (true) { 20 try { 21 Object obj = this.queue.take(); 22 if (obj instanceof QueueEvent) { 23 QueueEvent event = (QueueEvent) obj; 24 if (event.getAction() == QueueEvent.SERVER_CRASH) { 25 setup.crashServer(); 26 } else if (event.getAction() == QueueEvent.SERVER_RESTART) { 27 setup.restartServer(); 28 } 29 } else { 30 throw new AssertionError ("EventQueue was populated with a non-QueueEvent object."); 31 } 32 } catch (Exception e) { 33 throw new RuntimeException (e); 34 } 35 } 36 } 37 } 38 | Popular Tags |