41
|
1 package christie.topology.manager;
|
|
2
|
|
3
|
|
4 import christie.annotation.Peek;
|
|
5 import christie.annotation.Take;
|
|
6 import christie.codegear.CodeGear;
|
|
7 import christie.codegear.CodeGearManager;
|
|
8 import christie.topology.HostMessage;
|
161
|
9 import christie.topology.TopologyDataGear;
|
41
|
10
|
|
11 import java.util.HashMap;
|
|
12 import java.util.LinkedList;
|
|
13
|
|
14 public class IncomingHosts extends CodeGear {
|
|
15
|
129
|
16 @Take
|
94
|
17 HashMap<String, LinkedList<HostMessage>> resultParse;
|
129
|
18 @Take
|
60
|
19 LinkedList<String> nodeNames;
|
129
|
20 @Take
|
60
|
21 HashMap<String, String> absCookieTable;
|
41
|
22
|
|
23 @Take // new coming host info
|
44
|
24 HostMessage newHost;
|
|
25 @Take
|
|
26 String MD5;
|
41
|
27
|
160
|
28 @Peek
|
161
|
29 TopologyDataGear topoDG;
|
158
|
30
|
41
|
31 public IncomingHosts() {
|
|
32
|
|
33 }
|
|
34
|
|
35 @Override
|
57
|
36 protected void run(CodeGearManager cgm) {
|
41
|
37 // not have or match cookie
|
|
38 String nodeName = nodeNames.poll();
|
129
|
39 getLocalDGM().put("nodeNames", nodeNames);
|
44
|
40
|
41
|
41 // Manager connect to Node
|
158
|
42 cgm.createRemoteDGM(nodeName,
|
|
43 newHost.getHostName(),
|
|
44 newHost.getPort());
|
41
|
45
|
44
|
46 absCookieTable.put(MD5, nodeName);
|
129
|
47 getLocalDGM().put("absCookieTable", absCookieTable);
|
41
|
48
|
161
|
49 topoDG.setNodeName(nodeName);
|
|
50 getDGM(nodeName).put( "topoDG", topoDG);
|
44
|
51 getDGM(nodeName).put("cookie", MD5);
|
41
|
52
|
94
|
53 LinkedList<HostMessage> nodeInfoList = resultParse.get(nodeName);
|
158
|
54 getDGM(nodeName).put("connectNodeNum",nodeInfoList.size());
|
94
|
55 for (HostMessage nodeInfo : nodeInfoList) {
|
158
|
56
|
|
57 nodeInfo.setHostAndPort(newHost);
|
41
|
58
|
94
|
59 getLocalDGM().put("nodeInfo", nodeInfo);
|
158
|
60 getDGM(nodeName).put("remoteNodeInfo", nodeInfo);
|
44
|
61 cgm.setup(new RecordTopology());
|
41
|
62 }
|
129
|
63 getLocalDGM().put("resultParse", resultParse);
|
|
64
|
41
|
65 cgm.setup(new IncomingHosts());
|
|
66 }
|
|
67 }
|