Implement Selenium testing framework. Fixed thread safety for socket token management.
This commit is contained in:
parent
f1231c0e63
commit
4d3b77a840
|
@ -0,0 +1,33 @@
|
|||
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
|
||||
// Released under the terms of the CPL Common Public License version 1.0.
|
||||
package fitnesse.responders.run;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class SocketDealer {
|
||||
private Map<Integer, SocketSeeker> waitingList = new HashMap<Integer, SocketSeeker>(17);
|
||||
private int ticketCounter = 1;
|
||||
|
||||
public synchronized int seekingSocket(SocketSeeker seeker) {
|
||||
int ticket = ticketCounter++;
|
||||
waitingList.put(new Integer(ticket), seeker);
|
||||
return ticket;
|
||||
}
|
||||
|
||||
public synchronized Collection<SocketSeeker> getWaitingList() {
|
||||
return waitingList.values();
|
||||
}
|
||||
|
||||
public synchronized void dealSocketTo(int ticket, SocketDoner doner) throws Exception {
|
||||
Integer key = new Integer(ticket);
|
||||
SocketSeeker seeker = waitingList.get(key);
|
||||
seeker.acceptSocketFrom(doner);
|
||||
waitingList.remove(key);
|
||||
}
|
||||
|
||||
public synchronized boolean isWaiting(int ticket) {
|
||||
return waitingList.containsKey(new Integer(ticket));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue