Mercurial > hg > RemoteEditor > Eclipse
view src/pathfinder/mergetest/SelectorSimulator.java @ 154:6a3c982bd72a
*** empty log message ***
author | pin |
---|---|
date | Sun, 24 Aug 2008 13:43:50 +0900 |
parents | 6326e5ea4595 |
children | 0dfb6413a31e |
line wrap: on
line source
package pathfinder.mergetest; import java.util.ArrayList; import java.util.Set; public class SelectorSimulator<P> { private ArrayList<SelectionKeySimulator<P>> keyList; private NetworkSimulator<P> ns; private ArrayList<SelectionKeySimulator<P>> selectedKeys; public SelectorSimulator(NetworkSimulator<P> _ns) { // TODO Auto-generated constructor stub ns = _ns; keyList = new ArrayList<SelectionKeySimulator<P>>(); } public int select(){ selectedKeys = new ArrayList<SelectionKeySimulator<P>>(); synchronized(ns){ boolean empty = false; //while(empty){ for(SelectionKeySimulator<P> key : keyList){ ChannelSimulator<P> channel = key.channel(); if(channel.readQisEmpty()){ empty = true; }else{ empty = false; selectedKeys.add(key); break; } } try { if(empty) ns.wait(); } catch (InterruptedException e) { //e.printStackTrace(); } //} } return selectedKeys.size(); } public SelectionKeySimulator<P> register(ChannelSimulator<P> cs){ SelectionKeySimulator<P> key = new SelectionKeySimulator<P>(cs); keyList.add(new SelectionKeySimulator<P>(cs)); return key; } public ArrayList<SelectionKeySimulator<P>> selectedKeys() { return selectedKeys; } }