Mercurial > hg > Database > Alice
view src/main/java/alice/topology/manager/IncomingHosts.java @ 410:74e13553e3e3 dispose
change call do setKey in constractor
author | tatsuki |
---|---|
date | Sat, 05 Jul 2014 18:27:55 +0900 |
parents | 91e1b063a89f |
children | 2c6f86320691 |
line wrap: on
line source
package alice.topology.manager; import java.util.HashMap; import java.util.LinkedList; import org.msgpack.type.ValueFactory; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.DataSegment; import alice.datasegment.Receiver; import alice.topology.HostMessage; public class IncomingHosts extends CodeSegment { HashMap<String, LinkedList<NodeInfo>> topology; LinkedList<String> nodeNames; Receiver host = ids.create(CommandType.TAKE); public IncomingHosts(HashMap<String, LinkedList<NodeInfo>> topology, LinkedList<String> nodeNames) { this.topology = topology; this.nodeNames = nodeNames; this.host.setKey("local", "host"); } @Override public void run() { HostMessage host = this.host.asClass(HostMessage.class); String nodeName = nodeNames.poll(); // Manager connect to Node DataSegment.connect(nodeName, "", host.name, host.port); ods.put(nodeName, "host", nodeName); LinkedList<NodeInfo> nodes = topology.get(nodeName); for (NodeInfo nodeInfo : nodes) { HostMessage newHost = new HostMessage(host.name, host.port, nodeInfo.connectionName, nodeInfo.reverseName); ods.put("local", nodeInfo.sourceNodeName, newHost); } if (nodeNames.isEmpty()) { // configuration finish for (String key : topology.keySet()) { ods.put("local", key, ValueFactory.createNilValue()); } } else { new IncomingHosts(topology, nodeNames); } } }