From 64b1e0dc0406b18225919fcea46510c6f3c43e6f Mon Sep 17 00:00:00 2001 From: senft-lap Date: Fri, 23 Nov 2012 16:16:43 +0100 Subject: [PATCH] Implemented "status" cmd to check a nodes neighbors ad hoc. Printing a "new neighbor" message only if the received neighbor really is new. --- ws2012/P2P/uebungen/4/src/Main.java | 3 +++ ws2012/P2P/uebungen/4/src/node/Node.java | 24 ++++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ws2012/P2P/uebungen/4/src/Main.java b/ws2012/P2P/uebungen/4/src/Main.java index cca6e073..f863742e 100644 --- a/ws2012/P2P/uebungen/4/src/Main.java +++ b/ws2012/P2P/uebungen/4/src/Main.java @@ -58,6 +58,9 @@ public class Main { theNode.leave(); nodes.remove(theNode); break; + case "status": + System.out.println(nodes.get(node)); + break; default: System.out.println("Unknown command."); break; diff --git a/ws2012/P2P/uebungen/4/src/node/Node.java b/ws2012/P2P/uebungen/4/src/node/Node.java index 8fa8aa67..71c25ebd 100644 --- a/ws2012/P2P/uebungen/4/src/node/Node.java +++ b/ws2012/P2P/uebungen/4/src/node/Node.java @@ -49,13 +49,12 @@ public class Node { /** * Create another peer, mutually link creator and spawn. * - * @return + * @return the spawned Node * @throws IOException + * if no connection could be established to the new node */ public Node spawn() throws IOException { - LOGGER.info("Name: " + getName() + ", Spawning new node."); - - // create a new node + // LOGGER.info("Name: " + getName() + ", Spawning new node."); Node newNode = new Node(); buf.clear(); @@ -167,6 +166,14 @@ public class Node { return this.name; } + public String toString() { + StringBuilder result = new StringBuilder(256); + result.append("Node "); + result.append(getName()).append(", Neighbors: "); + result.append(neighbors); + return result.toString(); + } + public class UDPListen implements Runnable { private volatile boolean running = true; @@ -221,12 +228,13 @@ public class Node { // check, if we have the neighbor already. if (!hasNeighbor(new_neighbor)) { neighbors.add(new_neighbor); + + LOGGER.info(name + " from " + + receivedFrom.toString() + + " received new neighbor:" + + new_neighbor.toString()); } - LOGGER.info(name + " from " - + receivedFrom.toString() - + " received new neighbor:" - + new_neighbor.toString()); break; default: