From 50b861472339d1b47d53619b94c7b83373b6995c Mon Sep 17 00:00:00 2001 From: senft-lap Date: Tue, 27 Nov 2012 16:47:33 +0100 Subject: [PATCH] Extracted getNeighborId() --- ws2012/P2P/uebungen/4/src/node/Node.java | 27 ++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/ws2012/P2P/uebungen/4/src/node/Node.java b/ws2012/P2P/uebungen/4/src/node/Node.java index c77880b4..312766aa 100644 --- a/ws2012/P2P/uebungen/4/src/node/Node.java +++ b/ws2012/P2P/uebungen/4/src/node/Node.java @@ -12,10 +12,6 @@ import java.util.Map; import java.util.Random; import java.util.logging.Logger; -import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Receiver; - -import util.BufferUtil; - public class Node { private final static Logger LOGGER = Logger.getLogger(Node.class.getName()); @@ -187,15 +183,24 @@ public class Node { } } - public boolean hasNeighbor(SocketAddress adr) { + public boolean hasNeighbor(SocketAddress addr) { for (SocketAddress n : neighbors) { - if (n.toString().equals(adr.toString())) { + if (n.toString().equals(addr.toString())) { return true; } } return false; } + public int getNeighborId(SocketAddress addr) { + for (int i = 0; i < neighbors.size(); i++) { + if (neighbors.get(i).toString().equals(addr.toString())) { + return i; + } + } + return -1; + } + public String getName() { return this.name; } @@ -263,13 +268,9 @@ public class Node { LOGGER.info(name + ": " + receivedFrom.toString() + " is leaving. Deleting..."); - // search the neighbor in the list and remove him. - for (int i = 0; i < neighbors.size(); i++) { - if (((InetSocketAddress) neighbors.get(i)) - .getPort() == ((InetSocketAddress) receivedFrom) - .getPort()) { - neighbors.remove(i); - } + int idToRemove = getNeighborId(receivedFrom); + if (idToRemove != -1) { + neighbors.remove(idToRemove); } ack_id = buf.getInt();