Mercurial > hg > Database > Christie
comparison src/main/java/christie/topology/manager/SearchHostName.java.orig @ 143:443bf8351933
add FizzBuzz
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 04 Jan 2019 04:18:36 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
142:96f9c7c58c2b | 143:443bf8351933 |
---|---|
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; | |
9 //import org.msgpack.type.ValueFactory; | |
10 | |
11 import java.util.HashMap; | |
12 import java.util.LinkedList; | |
13 | |
14 public class SearchHostName extends CodeGear { | |
15 | |
16 @Take // reconnect NodeInfo | |
17 HostMessage reconnectHost; | |
18 | |
19 @Peek | |
20 HashMap<String, LinkedList<HostMessage>> topology; | |
21 | |
22 @Peek | |
23 boolean running; | |
24 | |
25 | |
26 public SearchHostName(){ | |
27 | |
28 } | |
29 | |
30 @Override | |
31 protected void run(CodeGearManager cgm) { | |
32 | |
33 | |
34 // Question: remove処理 どうしようか. いらない気もする. | |
35 // DataSegment.remove(hostInfo.absName); | |
36 | |
37 String nodeName = reconnectHost.getNodeName(); | |
38 String hostName = reconnectHost.getHostName(); | |
39 int port = reconnectHost.getPort(); | |
40 | |
41 cgm.createRemoteDGM(nodeName, hostName, port); | |
42 getDGM(nodeName).put("nodeName", nodeName); | |
43 | |
44 // put Host dataSegment on reconnect node | |
45 if (topology.containsKey(nodeName)) { | |
46 | |
47 // Question: これはバグ...? | |
48 // ods.put(reconnectHost.absName, "dummy"); // this is bug | |
49 | |
50 if (running){ | |
51 getLocalDGM().put(nodeName, ""); | |
52 } | |
53 | |
54 | |
55 | |
56 LinkedList<HostMessage> hostList = topology.get(nodeName); | |
57 for (HostMessage host : hostList){ | |
58 getLocalDGM().put(nodeName, host); | |
59 System.out.println("put data in "+ nodeName); | |
60 } | |
61 } | |
62 | |
63 // update topology information | |
64 for (LinkedList<HostMessage> list :topology.values()){ | |
65 for (HostMessage host : list){ | |
66 | |
67 // find and update old info | |
68 if (!nodeName.equals(host.getNodeName())) continue; | |
69 | |
70 if (!hostName.equals(host.getHostName()) || port != host.getPort()){ | |
71 host.setHostAndPort(hostName, port); | |
72 | |
73 getLocalDGM().put(host.getNodeName(), host); | |
74 | |
75 } else { | |
76 // nothing to do ? | |
77 } | |
78 } | |
79 } | |
80 | |
81 for (LinkedList<HostMessage> list :topology.values()){ | |
82 System.out.print(list.get(0).getRemoteNodeName()+" : "); | |
83 for (HostMessage host : list){ | |
84 System.out.print("[ "+host.getNodeName() +" " | |
85 +host.getHostName() +" " | |
86 +host.getPort() +" " | |
87 +host.getConnectionName()+" " | |
88 +host.getRemoteNodeName()+" ]"); | |
89 } | |
90 System.out.println(); | |
91 } | |
92 } | |
93 | |
94 } |