Mercurial > hg > Database > Christie
view src/main/java/christie/topology/manager/IncomingHosts.java @ 121:8949d0ecf1f6
refactor Topology
author | akahori |
---|---|
date | Tue, 11 Dec 2018 15:46:09 +0900 |
parents | 87a203c99177 |
children | 2e2d761ea806 |
line wrap: on
line source
package christie.topology.manager; import christie.annotation.Peek; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import christie.topology.HostMessage; import java.util.HashMap; import java.util.LinkedList; public class IncomingHosts extends CodeGear { @Peek // Topology from parse file HashMap<String, LinkedList<HostMessage>> resultParse; @Peek // nodeName list LinkedList<String> nodeNames; @Peek HashMap<String, String> absCookieTable; @Take // new coming host info HostMessage newHost; @Take String MD5; public IncomingHosts() { } @Override protected void run(CodeGearManager cgm) { // not have or match cookie String nodeName = nodeNames.poll(); String newHostName = newHost.getHostName(); int newHostPort = newHost.getPort(); // Manager connect to Node cgm.createRemoteDGM(nodeName, newHostName, newHostPort); absCookieTable.put(MD5, nodeName); getDGM(nodeName).put( "nodeName", nodeName); getDGM(nodeName).put("cookie", MD5); LinkedList<HostMessage> nodeInfoList = resultParse.get(nodeName); getDGM(nodeName).put("connectNodeNum", nodeInfoList.size()); for (HostMessage nodeInfo : nodeInfoList) { nodeInfo.setHostAndPort(newHostName, newHostPort); getLocalDGM().put("nodeInfo", nodeInfo); cgm.setup(new RecordTopology()); } cgm.setup(new IncomingHosts()); } }