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 }