changeset 384:56d4f93a3921 multicast

add RegisterList
author sugi
date Wed, 11 Jun 2014 15:49:59 +0900
parents 878d397904da
children 030c4f35393c
files src/main/java/alice/test/topology/aquarium/fx/Aquarium.java src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java src/main/java/alice/test/topology/aquarium/fx/CreateObject.java src/main/java/alice/test/topology/aquarium/fx/ReceiveRegisterList.java src/main/java/alice/test/topology/aquarium/fx/RegisterList.java src/main/java/alice/test/topology/aquarium/fx/SendDataOthers.java
diffstat 6 files changed, 77 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/alice/test/topology/aquarium/fx/Aquarium.java	Tue Jun 10 19:36:46 2014 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/Aquarium.java	Wed Jun 11 15:49:59 2014 +0900
@@ -30,6 +30,7 @@
 		primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>(){
 			@Override
 			public void handle(WindowEvent event) {
+				// should send finish DataSegment
 				System.exit(0);
 			}	
 		});
@@ -55,7 +56,6 @@
 		    	}
 		    }
 		});
-		
 		primaryStage.setScene(scene);
 		primaryStage.show();
 	}
@@ -67,8 +67,8 @@
 		// Create and position camera
 		PerspectiveCamera camera = new PerspectiveCamera(true);
 		camera.getTransforms().addAll(
-				new Rotate(-20, Rotate.Y_AXIS),
-				new Rotate(-20, Rotate.X_AXIS),
+				new Rotate(0, Rotate.Y_AXIS),
+				new Rotate(0, Rotate.X_AXIS),
 				new Translate(0, 0, -15));
 		camera.setId("camera");
 
--- a/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java	Tue Jun 10 19:36:46 2014 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java	Wed Jun 11 15:49:59 2014 +0900
@@ -1,5 +1,6 @@
 package alice.test.topology.aquarium.fx;
 
+import java.util.ArrayList;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -8,9 +9,9 @@
 import alice.datasegment.Receiver;
 
 public class CheckMyName extends CodeSegment {
- 	private Receiver host = ids.create(CommandType.PEEK);
+	private Receiver host = ids.create(CommandType.PEEK);
 	private Pattern pattern = Pattern.compile("^(node|cli|local)([0-9]+)$");
-	
+
 	public CheckMyName(){
 		host.setKey("host");
 	}
@@ -20,19 +21,26 @@
 		String name = host.asString();
 		Matcher matcher = pattern.matcher(name);
 		matcher.find();
-		
+
 		// use view scope
 		//String type = matcher.group(1);
-		//int num = new Integer(matcher.group(2));
+		int num = new Integer(matcher.group(2));
 		
+		if (num == 0){ // root node
+			new RegisterList();
+			ods.put("registeredList", new ArrayList<FishInfo>());
+		} else {
+			new ReceiveRegisterList();
+		}
+
 		FishInfo fishInfo = new FishInfo(0,0,0);
 		fishInfo.setName(name);
-		
+
 		ods.put("fishData", fishInfo);
-		
+
 		new CreateObject();
 		new AddObject();
-		
+
 		String[] args = {name};
 		Aquarium.main(args);
 	}
--- a/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java	Tue Jun 10 19:36:46 2014 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java	Wed Jun 11 15:49:59 2014 +0900
@@ -23,7 +23,6 @@
 	
 	@Override
 	public void run() {
-		System.out.println("receive data " +info.from);
 		FishInfo fishInfo = info.asClass(FishInfo.class);
 		
 		BooleanProperty showWireframe = new SimpleBooleanProperty(false);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/test/topology/aquarium/fx/ReceiveRegisterList.java	Wed Jun 11 15:49:59 2014 +0900
@@ -0,0 +1,25 @@
+package alice.test.topology.aquarium.fx;
+
+import java.util.ArrayList;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+
+public class ReceiveRegisterList extends CodeSegment {
+	private Receiver info = ids.create(CommandType.PEEK);
+
+	public ReceiveRegisterList(){
+		info.setKey("registeredList");
+	}
+	
+	@Override
+	public void run() {
+		@SuppressWarnings("unchecked")
+		ArrayList<FishInfo> list = info.asClass(ArrayList.class);
+		for (FishInfo f :list){
+			System.out.println(f.name);
+		}
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/test/topology/aquarium/fx/RegisterList.java	Wed Jun 11 15:49:59 2014 +0900
@@ -0,0 +1,33 @@
+package alice.test.topology.aquarium.fx;
+
+import java.util.ArrayList;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+
+public class RegisterList extends CodeSegment{
+
+	private Receiver info = ids.create(CommandType.TAKE);  // created fish object info
+	private Receiver info1 = ids.create(CommandType.PEEK); // created fish List
+	
+	public RegisterList(){
+		info.setKey("register");
+		info1.setKey("registeredList");
+	}
+	
+	@Override
+	public void run() {
+		System.out.println("registeredList");
+		FishInfo fishInfo = info.asClass(FishInfo.class);
+	
+		@SuppressWarnings("unchecked")
+		ArrayList<FishInfo> list = info1.asClass(ArrayList.class);
+		
+		list.add(fishInfo);
+		ods.update(info1.key, list);
+		new SendDataOthers(info1, "registeredList");
+		new RegisterList();
+	}
+
+}
--- a/src/main/java/alice/test/topology/aquarium/fx/SendDataOthers.java	Tue Jun 10 19:36:46 2014 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/SendDataOthers.java	Wed Jun 11 15:49:59 2014 +0900
@@ -7,6 +7,7 @@
 import alice.datasegment.Receiver;
 
 public class SendDataOthers extends CodeSegment {
+	// this CodeSegment is bad.
 	
 	private Receiver info = ids.create(CommandType.PEEK);
 	private Receiver info1; // should use dataSegment
@@ -20,11 +21,9 @@
 	
 	@Override
 	public void run() {
-		System.out.println(key);
 		@SuppressWarnings("unchecked")
 		List<String> nodes = info.asClass(List.class);
 		for (String node : nodes) {
-			System.out.println(node);
 			if (!info1.from.equals(node))
 				ods.put(node, key, info1.getVal());
 		}