annotate src/main/java/christie/topology/manager/CreateTreeTopology.java @ 129:2e2d761ea806

fix List Peek to Take
author akahori
date Tue, 25 Dec 2018 15:16:17 +0900
parents ce96f375f369
children e295cb59e514
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
1 package christie.topology.manager;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
2
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
3
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
4 import christie.annotation.Peek;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
5 import christie.annotation.Take;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
6 import christie.codegear.CodeGear;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
7 import christie.codegear.CodeGearManager;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
8 import christie.topology.HostMessage;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
9
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
10 import java.util.HashMap;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
11
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
12 public class CreateTreeTopology extends CodeGear{
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
13
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
14 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
15 HostMessage newHost;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
16
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
17 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
18 int hostCount;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
19
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
20 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
21 HashMap<String, HostMessage> nameTable;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
22
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
23 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
24 String MD5;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
25
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
26 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
27 HashMap<String, String> absCookieTable;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
28
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
29 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
30 ParentManager parentManager;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
31
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
32 public CreateTreeTopology(){
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
33 }
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
34
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
35 @Override
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
36 protected void run(CodeGearManager cgm) {
95
5cd99bac9abd update CreateTreeTopology refactor
akahori
parents: 94
diff changeset
37
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
38
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
39 String nodeName = "node" + hostCount;
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
40 String newHostName = newHost.getHostName();
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
41 int newHostPort = newHost.getPort();
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
42
95
5cd99bac9abd update CreateTreeTopology refactor
akahori
parents: 94
diff changeset
43
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
44 cgm.createRemoteDGM(nodeName, newHostName, newHostPort);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
45 getDGM(nodeName).put("nodeName", nodeName);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
46 getDGM(nodeName).put("cookie", MD5);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
47
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
48 absCookieTable.put(MD5, nodeName);
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
49 getLocalDGM().put("absCookieTable", absCookieTable);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
50
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
51 getLocalDGM().put("hostCount", hostCount + 1);
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
52 newHost.setAlive(true);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
53 nameTable.put(nodeName, newHost);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
54 parentManager.register(nodeName);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
55
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
56 if (hostCount == 0) {
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
57 // どこにも繋がれるところがないので, ルートのとき.
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
58 // ルートなので, connectNodeNumもreverseCountも0でいい.
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
59 getDGM(nodeName).put("connectNodeNum", 0);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
60 getDGM(nodeName).put("reverseCount", 0);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
61
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
62 } else {
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
63 // 親のみにつながればいいので1
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
64 getDGM(nodeName).put("connectNodeNum", 1);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
65 // put parent information own
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
66 String parentNodeName = parentManager.getMyParent();
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
67 HostMessage parentHost = nameTable.get(parentNodeName).clone();
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
68
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
69
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
70 // 相手からhostNameとportはもらっているので, nodeの情報だけ与えれば良い.
114
ce96f375f369 fix topologyManager
akahori
parents: 100
diff changeset
71 parentHost.setNodeInfo(nodeName, "parent", parentNodeName);
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
72 //parentHost.setNodeInfo(parentNodeName, "child", nodeName);
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
73 getLocalDGM().put("nodeInfo", parentHost);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
74 cgm.setup(new RecordTopology());
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
75
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
76 // newChildHost, newHostも同じ
114
ce96f375f369 fix topologyManager
akahori
parents: 100
diff changeset
77 newHost.setNodeInfo(parentNodeName, "child" + parentManager.getMyNumber(), nodeName);
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
78 getLocalDGM().put("nodeInfo", newHost);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
79 cgm.setup(new RecordTopology());
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
80 }
85
331ad549e764 fix CreateTreeTopology
akahori
parents: 83
diff changeset
81
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
82 getLocalDGM().put("nameTable", nameTable);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
83 getLocalDGM().put("parentManager", parentManager);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
84
85
331ad549e764 fix CreateTreeTopology
akahori
parents: 83
diff changeset
85 getDGM(nodeName).put("start", "start");
100
5c807f996749 add startTime
akahori
parents: 95
diff changeset
86 getLocalDGM().put("startTime", System.currentTimeMillis());
85
331ad549e764 fix CreateTreeTopology
akahori
parents: 83
diff changeset
87
92
f607fe2fc9a9 del ComingServiceHosts
akahori
parents: 85
diff changeset
88 cgm.setup(new CreateTreeTopology());
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
89 }
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
90 }