KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tcsimulator > EventQueueHandler


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tcsimulator;
5
6 import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
7
8
9 public class EventQueueHandler implements Runnable JavaDoc {
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 JavaDoc 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 JavaDoc("EventQueue was populated with a non-QueueEvent object.");
31         }
32       } catch (Exception JavaDoc e) {
33         throw new RuntimeException JavaDoc(e);
34       }
35     }
36   }
37 }
38
Popular Tags