diff src/topology/manager/IncomingHosts.java @ 22:2ca2d961a8d2

implements outline of TopologyManager
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 17 Jan 2012 00:40:27 +0900
parents
children 54bf607118ae
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/topology/manager/IncomingHosts.java	Tue Jan 17 00:40:27 2012 +0900
@@ -0,0 +1,48 @@
+package topology.manager;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import org.apache.log4j.Logger;
+import org.msgpack.MessagePack;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.DataSegmentReceiver;
+import alice.topology.HostMessage;
+
+public class IncomingHosts extends CodeSegment {
+	
+	HashMap<String, NodeInfo> topology;
+	LinkedList<String> nodeNames;
+	DataSegmentReceiver host = new DataSegmentReceiver(ids, CommandType.TAKE);
+	Logger logger = Logger.getLogger(IncomingHosts.class);
+	
+	public IncomingHosts(HashMap<String, NodeInfo> topology, LinkedList<String> nodeNames) {
+		this.topology = topology;
+		this.nodeNames = nodeNames;
+	}
+
+	@Override
+	public void run() {
+		MessagePack msgpack = new MessagePack();
+		try {
+			HostMessage host = msgpack.convert(this.host.val, HostMessage.class);
+			String nodeName = nodeNames.poll();
+			
+			// TODO: send nodeName to node
+			
+		} catch (IOException e) {
+			logger.error("HostMessage format error");
+			e.printStackTrace();
+		}
+		
+		if (!nodeNames.isEmpty()) {
+			IncomingHosts cs = new IncomingHosts(topology, nodeNames);
+			cs.host.setKey("local", "host");
+		}
+
+	}
+
+}