// 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 int seekingSocket(SocketSeeker seeker) { int ticket = ticketCounter++; waitingList.put(new Integer(ticket), seeker); return ticket; } public Collection<SocketSeeker> getWaitingList() { return waitingList.values(); } public 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 boolean isWaiting(int ticket) { return waitingList.containsKey(new Integer(ticket)); } }