package uk.ac.imperial.lsds.seepmaster.infrastructure.master;
import java.net.InetAddress;
import uk.ac.imperial.lsds.seep.infrastructure.ControlEndPoint;
import uk.ac.imperial.lsds.seep.infrastructure.DataEndPoint;
import uk.ac.imperial.lsds.seep.infrastructure.ExecutionUnitType;
import uk.ac.imperial.lsds.seep.util.Utils;
public class PhysicalNode implements ExecutionUnit {
private static final ExecutionUnitType executionUnitType = ExecutionUnitType.PHYSICAL_NODE;
private ControlEndPoint cep;
private DataEndPoint dep;
private int id;
public PhysicalNode(InetAddress ip, int controlPort, int dataPort) {
this.id = Utils.computeIdFromIpAndPort(ip, controlPort);
this.dep = new DataEndPoint(id, ip.getHostAddress(), dataPort);
this.cep = new ControlEndPoint(id, ip.getHostAddress(), controlPort);
}
@Override
public DataEndPoint getDataEndPoint() {
return dep;
}
@Override
public ControlEndPoint getControlEndPoint() {
return cep;
}
@Override
public int getId() {
return id;
}
@Override
public ExecutionUnitType getType() {
return executionUnitType;
}
@Override
public String toString(){
String ls = System.getProperty("line.separator");
StringBuilder sb = new StringBuilder();
sb.append("TYPE: " + executionUnitType.name());
sb.append(ls);
sb.append("IP: " + dep.getIp().toString());
sb.append(ls);
sb.append("Data-PORT: " + dep.getPort());
sb.append(ls);
sb.append("Control-PORT: " + cep.getPort());
sb.append(ls);
return sb.toString();
}
}