public Server() { id = IdGenerator.getInstance().getId(); spreadGroup = new SpreadGroup(); GroupConnection.getInstance().getConnection().add(listener); knownServers = new HashMap<>(); waitingOperations = new LinkedBlockingDeque<>(); }
public void connectToGroup(String group) { this.groupName = group; try { spreadGroup.join(GroupConnection.getInstance().getConnection(), groupName); } catch (SpreadException e) { e.printStackTrace(); } }
public void sendElection() { this.isMaster = true; SpreadMessage message = new SpreadMessage(); try { message.setType(MessageType.ELECTION.code); message.setObject(id); message.addGroup(groupName); message.setReliable(); GroupConnection.getInstance().getConnection().multicast(message); } catch (SpreadException e) { e.printStackTrace(); } }
public void leave() { GroupConnection.getInstance().getConnection().remove(listener); }