/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bftsmart.reconfiguration; import java.io.Serializable; import java.util.Arrays; import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; /** * * @author eduardo */ public class View implements Serializable { private static final long serialVersionUID = 1466870385442069307L; private int id; private int f; private int[] processes; private Map<Integer,InetSocketAddress> addresses; public View(int id, int[] processes, int f, InetSocketAddress[] addresses){ this.id = id; this.processes = processes; this.addresses = new HashMap<Integer, InetSocketAddress>(); for(int i = 0; i < this.processes.length;i++) this.addresses.put(processes[i],addresses[i]); Arrays.sort(this.processes); this.f = f; } public boolean isMember(int id){ for(int i = 0; i < this.processes.length;i++){ if(this.processes[i] == id){ return true; } } return false; } public int getPos(int id){ for(int i = 0; i < this.processes.length;i++){ if(this.processes[i] == id){ return i; } } return -1; } public int getId() { return id; } public int getF() { return f; } public int getN(){ return this.processes.length; } public int[] getProcesses() { return processes; } @Override public String toString(){ String ret = "ID:"+id+"; F:"+f+"; Processes:"; for(int i = 0; i < processes.length;i++){ ret = ret+processes[i]+"("+addresses.get(processes[i])+"),"; } return ret; } public InetSocketAddress getAddress(int id) { return addresses.get(id); } }