PageRenderTime 29ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/src/fitnesse/responders/run/SocketDealer.java

http://github.com/unclebob/fitnesse
Java | 33 lines | 25 code | 6 blank | 2 comment | 0 complexity | d7501d1a138c35a7d56ffdebc06f7b37 MD5 | raw file
Possible License(s): BSD-2-Clause, BSD-3-Clause, GPL-2.0
  1. // Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
  2. // Released under the terms of the CPL Common Public License version 1.0.
  3. package fitnesse.responders.run;
  4. import java.util.Collection;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. public class SocketDealer {
  8. private Map<Integer, SocketSeeker> waitingList = new HashMap<Integer, SocketSeeker>(17);
  9. private int ticketCounter = 1;
  10. public int seekingSocket(SocketSeeker seeker) {
  11. int ticket = ticketCounter++;
  12. waitingList.put(new Integer(ticket), seeker);
  13. return ticket;
  14. }
  15. public Collection<SocketSeeker> getWaitingList() {
  16. return waitingList.values();
  17. }
  18. public void dealSocketTo(int ticket, SocketDoner doner) throws Exception {
  19. Integer key = new Integer(ticket);
  20. SocketSeeker seeker = waitingList.get(key);
  21. seeker.acceptSocketFrom(doner);
  22. waitingList.remove(key);
  23. }
  24. public boolean isWaiting(int ticket) {
  25. return waitingList.containsKey(new Integer(ticket));
  26. }
  27. }