package com.flaremicro.crossjeeves; import java.util.List; import com.flaremicro.crossjeeves.net.ClientHandler; import com.flaremicro.crossjeeves.net.ErrorCodes; public class CrossJeevesClient { private List agentList; private String script; //TODO Make configurable private static final int MAX_ATTEMPTS = 2; public CrossJeevesClient(List agentList, String script) { this.agentList = agentList; this.script = script; } public void beginJob() { for(int i = 0; i < MAX_ATTEMPTS; i++) { for(AgentInfo agent : agentList) { int exitCode = ClientHandler.connect(agent.addr, agent.port, script); if(ErrorCodes.getErrorCode(exitCode) == null || ErrorCodes.getErrorCode(exitCode).isTerminal) { System.out.println("Recieved terminal exit code " + exitCode); System.exit(exitCode); } else if(exitCode == ErrorCodes.OK.id) { System.out.println("Job Completed!"); System.exit(0); } } } } }