Added a simple UI
This commit is contained in:
parent
140d359aee
commit
f37658783b
@ -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();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user