Added a simple UI

This commit is contained in:
senft-desktop 2012-11-21 18:01:27 +01:00
parent 140d359aee
commit f37658783b

View File

@ -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<String, Node> nodes = new HashMap<String, Node>();
/**
* 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();
// }
}
}