summaryrefslogblamecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/Client.java
blob: dd1864384e25a46bca45126781e9451990499cd6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12

                         


                                     






                                  

                                             








                                                                          
                                                     













                                                                
                                                             




















                                                                     
                                                              






                                      
                                        













                                  

                                       

         


                                                  
 











                                            
package ControllerWorker;

import java.util.Vector;

import org.gearman.client.GearmanJob;
import org.json.simple.JSONObject;

public class Client {
	private int id;
	private String ip;
	private String mac;
	private ClientState state;
	private Vector<ClientPingTime> times;
	private Vector<ClientJob> jobs;
	private String error;
	private Boolean finished;

	public Client(JSONObject clientJsonObj, String initialStateText) {
		id = Integer.parseInt(clientJsonObj.get("id").toString());
		ip = clientJsonObj.get("ip").toString();
		mac = clientJsonObj.get("mac").toString();
		finished = false;
		error = "";
		setState(ClientState.CLIENT_UNKNOWN);
		times = new Vector<ClientPingTime>();
		jobs = new Vector<ClientJob>();
	}

	public GearmanJob getJob(int jobType) {
		for (ClientJob job : jobs) {
			if (job.getJobType() == jobType) {
				return job.getGearmanJob();
			}
		}
		return null;
	}

	public void addJob(int jobType, GearmanJob gearmanJob) {
		jobs.add(new ClientJob(jobType, gearmanJob));
	}

	public void removeJob(GearmanJob gearmanJob) {
		for (ClientJob job : jobs) {
			if (job.getGearmanJob().equals(gearmanJob)) {
				jobs.remove(job);
				break;
			}
		}
	}

	public long getPingTime(int timeType) {
		for (ClientPingTime time : times) {
			if (time.getType() == timeType) {
				return time.getTime();
			}
		}
		return 0;
	}

	public void addPingTime(int timeType, long time) {
		times.add(new ClientPingTime(timeType, time));
	}

	public int getId() {
		return id;
	}

	public String getStateText() {
		return state.toString();
	}

	public String getError() {
		return error;
	}

	public String getIp() {
		return ip;
	}

	public String getMac() {
		return mac;
	}

	public ClientState getState() {
		return state;
	}

	public void setState(ClientState state_) {
		state = state_;
	}

	public void setError(String error) {
		this.error = error;
	}

	public Boolean isFinished() {
		return finished;
	}

	public void finish() {
		this.finished = true;
	}
}