bf0f967c7c75a85b4481ef9c917760d5a139e514
[phpeclipse.git] / net.sourceforge.phpeclipse.xdebug.core / src / net / sourceforge / phpeclipse / xdebug / core / xdebug / ResponseList.java
1 package net.sourceforge.phpeclipse.xdebug.core.xdebug;
2
3 import java.util.HashMap;
4 //import net.sourceforge.phpeclipse.xdebug.core.xdebug.ResponseListener.DebugResponse;
5 import net.sourceforge.phpeclipse.xdebug.core.xdebug.ResponseListener.XDebugResponse;
6
7 public class ResponseList {
8         private int fLastId;
9         private HashMap fList;
10
11         public ResponseList() {
12                 fLastId = -1;
13                 fList = new HashMap();
14         }
15
16         public synchronized void add(XDebugResponse response/*, int id*/) {
17                 int id = response.getTransactionID();
18                 fList.put(new Integer(id), response);
19                 fLastId = id;
20                 notifyAll();
21         }
22
23         public synchronized XDebugResponse get(int id) {
24                 while (id > fLastId) {
25                         try {
26                                 wait();
27                         } catch (InterruptedException e) {
28                                 e.printStackTrace();
29                         }
30                 }
31                 if (fList.containsKey(new Integer(id)))
32                         return (XDebugResponse) fList.remove(new Integer(id));
33                 else
34                         return null;
35         }
36 }