From f37658783bef7cb45de6116174164f8860599bc8 Mon Sep 17 00:00:00 2001 From: senft-desktop Date: Wed, 21 Nov 2012 18:01:27 +0100 Subject: [PATCH] Added a simple UI --- .../P2P/uebungen/4/src/network/Network.java | 114 ++++++++++++------ 1 file changed, 75 insertions(+), 39 deletions(-) diff --git a/ws2012/P2P/uebungen/4/src/network/Network.java b/ws2012/P2P/uebungen/4/src/network/Network.java index eac0b048..71c32a36 100644 --- a/ws2012/P2P/uebungen/4/src/network/Network.java +++ b/ws2012/P2P/uebungen/4/src/network/Network.java @@ -1,17 +1,25 @@ package network; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Map; import java.util.logging.LogManager; import peer.Node; public class Network { + public static Map nodes = new HashMap(); + /** * grow a network: Starting with one peer, repeatedly let peers spawn or * leave at random + * + * @throws IOException */ - public static void main(String[] args) { + public static void main(String[] args) throws IOException { System.setProperty("java.util.logging.config.file", "logging.properties"); @@ -24,51 +32,79 @@ public class Network { e.printStackTrace(); } - int delay = 1000; + // int delay = 1000; Node a = new Node(); + nodes.put("a", a); - try { - Node b = a.spawn(); - Thread.sleep(delay); + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + String s; + while ((s = in.readLine()) != null && s.length() != 0) { + String[] splitted = s.split(" "); - Node c = a.spawn(); - Thread.sleep(delay); + String node = splitted[0]; + String cmd = splitted[1]; - Node d = a.spawn(); - Thread.sleep(delay); - - // Node ba = b.spawn(); - // Thread.sleep(delay); - // - // Node bb = b.spawn(); - // Thread.sleep(delay); - // - // Node bc = b.spawn(); - // Thread.sleep(delay); - // - // Node bd = b.spawn(); - // Thread.sleep(delay); - // - // Node be = b.spawn(); - // Thread.sleep(delay); + if (nodes.containsKey(node)) { - a.leave(); - Thread.sleep(delay); + switch (cmd) { + case "spawn": + Node newNode = nodes.get(node).spawn(); + String newNodeName = splitted[2]; + nodes.put(newNodeName, newNode); + break; + case "leave": + nodes.get(node).leave(); + default: + System.out.println("Unknown command."); + break; + } - b.leave(); - Thread.sleep(delay); - - c.leave(); - Thread.sleep(delay); - - d.leave(); - - } catch (IOException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); + } else { + System.out.println("No such node."); + } } - } + // try { + // Node b = a.spawn(); + // Thread.sleep(delay); + // + // Node c = a.spawn(); + // Thread.sleep(delay); + // + // Node d = a.spawn(); + // Thread.sleep(delay); + // + // // Node ba = b.spawn(); + // // Thread.sleep(delay); + // // + // // Node bb = b.spawn(); + // // Thread.sleep(delay); + // // + // // Node bc = b.spawn(); + // // Thread.sleep(delay); + // // + // // Node bd = b.spawn(); + // // Thread.sleep(delay); + // // + // // Node be = b.spawn(); + // // Thread.sleep(delay); + // + // a.leave(); + // Thread.sleep(delay); + // + // b.leave(); + // Thread.sleep(delay); + // + // c.leave(); + // Thread.sleep(delay); + // + // d.leave(); + // + // } catch (IOException e) { + // e.printStackTrace(); + // } catch (InterruptedException e) { + // e.printStackTrace(); + // } + } }