annotate src/main/java/christie/topology/manager/CreateTreeTopology.java @ 272:b592fe1d4a4e default tip

create example Attendance
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 01 Jul 2021 20:41:07 +0900
parents dd3c0ba6a0a6
children
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;
176
6eb548c188e5 update add Message
akahori
parents: 168
diff changeset
9 import christie.topology.Message;
161
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
10 import christie.topology.TopologyDataGear;
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
11
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
12 import java.util.HashMap;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
13
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
14 public class CreateTreeTopology extends CodeGear{
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
15
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
16 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
17 HostMessage newHost;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
18
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
19 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
20 int hostCount;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
21
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
22 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
23 HashMap<String, HostMessage> nameTable;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
24
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
25 @Take
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
26 String MD5;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
27
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
28 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
29 HashMap<String, String> absCookieTable;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
30
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
31 @Take
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
32 ParentManager parentManager;
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
33
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
34 public CreateTreeTopology(){
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
35 }
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
36
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
37 @Override
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
38 protected void run(CodeGearManager cgm) {
95
5cd99bac9abd update CreateTreeTopology refactor
akahori
parents: 94
diff changeset
39
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
40
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
41 String nodeName = "node" + hostCount;
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
42 String newHostName = newHost.getHostName();
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
43 int newHostPort = newHost.getPort();
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
44
161
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
45 cgm.createRemoteDGM(nodeName, newHostName, newHostPort);
95
5cd99bac9abd update CreateTreeTopology refactor
akahori
parents: 94
diff changeset
46
161
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
47 TopologyDataGear topoDG = new TopologyDataGear();
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
48 topoDG.setNodeName(nodeName);
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
49
5c5a5da0d13d add TopoDG
akahori
parents: 158
diff changeset
50 getDGM(nodeName).put("topoDG", topoDG);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
51 getDGM(nodeName).put("cookie", MD5);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
52
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
53 absCookieTable.put(MD5, nodeName);
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
54 getLocalDGM().put("absCookieTable", absCookieTable);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
55
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
56 getLocalDGM().put("hostCount", hostCount + 1);
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
57 newHost.setAlive(true);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
58 nameTable.put(nodeName, newHost);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
59 parentManager.register(nodeName);
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
60
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
61 if (hostCount == 0) {
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
62 // どこにも繋がれるところがないので, ルートのとき.
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
63 } else {
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
64 // put parent information own
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
65 String parentNodeName = parentManager.getMyParent();
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
66 HostMessage parentHost = nameTable.get(parentNodeName).clone();
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
67
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
68
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
69 // 相手からhostNameとportはもらっているので, nodeの情報だけ与えれば良い.
114
ce96f375f369 fix topologyManager
akahori
parents: 100
diff changeset
70 parentHost.setNodeInfo(nodeName, "parent", parentNodeName);
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
71 //parentHost.setNodeInfo(parentNodeName, "child", nodeName);
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
72 getLocalDGM().put("nodeInfo", parentHost);
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
73 getDGM(nodeName).put("remoteNodeInfo", 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);
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
79 getDGM(parentNodeName).put("remoteNodeInfo", newHost);
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
80 cgm.setup(new RecordTopology());
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
81 }
85
331ad549e764 fix CreateTreeTopology
akahori
parents: 83
diff changeset
82
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
83 getLocalDGM().put("nameTable", nameTable);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
84 getLocalDGM().put("parentManager", parentManager);
2e2d761ea806 fix List Peek to Take
akahori
parents: 114
diff changeset
85
176
6eb548c188e5 update add Message
akahori
parents: 168
diff changeset
86 getDGM(nodeName).put("connectNodeNum", 1);
198
dd3c0ba6a0a6 fix topology manager
akahori
parents: 176
diff changeset
87 //getDGM(nodeName).put("remoteNodeInfo", new HostMessage());
176
6eb548c188e5 update add Message
akahori
parents: 168
diff changeset
88 getDGM(nodeName).put("_CONNECTIONMESSAGE", new Message());
6eb548c188e5 update add Message
akahori
parents: 168
diff changeset
89 getDGM(nodeName).put("_STARTMESSAGE", new Message());
100
5c807f996749 add startTime
akahori
parents: 95
diff changeset
90 getLocalDGM().put("startTime", System.currentTimeMillis());
85
331ad549e764 fix CreateTreeTopology
akahori
parents: 83
diff changeset
91
92
f607fe2fc9a9 del ComingServiceHosts
akahori
parents: 85
diff changeset
92 cgm.setup(new CreateTreeTopology());
83
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
93 }
2314c55534ef add TreeTopology
akahori
parents:
diff changeset
94 }