package edu.harvard.econcs.turkserver.server; import java.util.HashSet; import java.util.Set; import edu.harvard.econcs.turkserver.client.ClientUtils; import edu.harvard.econcs.turkserver.client.LobbyClient; import edu.harvard.econcs.turkserver.client.SessionClient; import edu.harvard.econcs.turkserver.client.TestClient; public class ClientGenerator { final String url; int count = 0; Set<SessionClient<?>> clients = new HashSet<>(); public ClientGenerator(String url) { this.url = url; } public <C> SessionClient<C> getSessionClient(Class<C> clientClass, String hitId, String assignmentId, String workerId) throws Exception { SessionClient<C> lc = ClientUtils.getWrappedClient(clientClass); count++; lc.connect(url, hitId, assignmentId, workerId); clients.add(lc); return lc; } public <C> LobbyClient<C> getClient(Class<C> clientClass) throws Exception { LobbyClient<C> lc = ClientUtils.getWrappedLobbyClient(clientClass); count++; lc.connect(url, "HIT " + count, "Asst " + count, "Worker " + count); clients.add(lc); return lc; } public void disposeClient(SessionClient<TestClient> sc) { sc.disconnect(); clients.remove(sc); } public void disposeAllClients() { for( SessionClient<?> lc : clients ) { lc.disconnect(); } } }