From 89cf73f20fbfa998f26c162aea03d27aea9aa976 Mon Sep 17 00:00:00 2001 From: senft-lap Date: Tue, 4 Dec 2012 14:45:35 +0100 Subject: [PATCH] Added NetworkDumper to Denis' Generator --- ws2012/P2P/uebungen/4/src/RandomGenerator.java | 16 +++++++++++++--- ws2012/P2P/uebungen/4/src/RandomGenerator2.java | 2 +- .../uebungen/4/src/analysis/NetworkDumper.java | 5 ++++- ws2012/P2P/uebungen/4/src/node/Node.java | 4 +++- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ws2012/P2P/uebungen/4/src/RandomGenerator.java b/ws2012/P2P/uebungen/4/src/RandomGenerator.java index 116829fb..cfb4d16a 100644 --- a/ws2012/P2P/uebungen/4/src/RandomGenerator.java +++ b/ws2012/P2P/uebungen/4/src/RandomGenerator.java @@ -6,10 +6,12 @@ import java.util.List; import java.util.Random; import java.util.logging.LogManager; +import analysis.NetworkDumper; + import node.Node; public class RandomGenerator { - public static int initNodeCount = 20; + public static int initNodeCount = 99; public static double initBirthRate = 0.50; public static double initDeathRate = 0.20; public static int initRounds = 13; @@ -47,8 +49,16 @@ public class RandomGenerator { } switch (cmd) { - case "br": - // + case "dump": + nodes.get(0).gatherInformationOfNetwork(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + NetworkDumper d = new NetworkDumper(nodes.get(0)); + d.write(d.networkToDot(nodes.get(0).getNetwork())); break; case "add": add(count); diff --git a/ws2012/P2P/uebungen/4/src/RandomGenerator2.java b/ws2012/P2P/uebungen/4/src/RandomGenerator2.java index 9ba9043c..45d37a67 100644 --- a/ws2012/P2P/uebungen/4/src/RandomGenerator2.java +++ b/ws2012/P2P/uebungen/4/src/RandomGenerator2.java @@ -26,7 +26,7 @@ public class RandomGenerator2 { public RandomGenerator2() { firstNode = new Node(); nodes.add(firstNode); - new NetworkDumper(firstNode); + new NetworkDumper(firstNode).start(); for (int i = 0; i < START_NODES - 1; i++) { spawn(); diff --git a/ws2012/P2P/uebungen/4/src/analysis/NetworkDumper.java b/ws2012/P2P/uebungen/4/src/analysis/NetworkDumper.java index 58276782..75cff37a 100644 --- a/ws2012/P2P/uebungen/4/src/analysis/NetworkDumper.java +++ b/ws2012/P2P/uebungen/4/src/analysis/NetworkDumper.java @@ -17,6 +17,9 @@ public class NetworkDumper implements Runnable { public NetworkDumper(Node n) { this.node = n; + } + + public void start() { new Thread(this).start(); } @@ -50,7 +53,7 @@ public class NetworkDumper implements Runnable { return s.split(":")[1]; } - private void write(String s) { + public void write(String s) { try { // Create file FileWriter fstream = new FileWriter("graphs/" diff --git a/ws2012/P2P/uebungen/4/src/node/Node.java b/ws2012/P2P/uebungen/4/src/node/Node.java index ca4e01c6..8947f246 100644 --- a/ws2012/P2P/uebungen/4/src/node/Node.java +++ b/ws2012/P2P/uebungen/4/src/node/Node.java @@ -33,7 +33,7 @@ public class Node { /** * Saves the neighbor of each node in the network */ - private Map> network = new HashMap<>(); + private Map> network = new HashMap>(); private volatile Thread thread; private UDPHandler udpListen; @@ -221,6 +221,8 @@ public class Node { } public void gatherInformationOfNetwork() { + network = new HashMap>(); + try { byte[] myAddr = BufferUtil.addrToBytes(((InetSocketAddress) channel .getLocalAddress()));