Mercurial > hg > Database > Alice
annotate src/main/java/alice/topology/manager/RecodeTopology.java @ 599:3284428f525e dispose
add MetaCodeSegment & MetaDSM
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 15 Feb 2016 01:16:35 +0900 |
parents | 8f765e3eed24 |
children | 8a9fd716c335 |
rev | line source |
---|---|
422 | 1 package alice.topology.manager; |
2 | |
3 import java.util.HashMap; | |
4 import java.util.LinkedList; | |
5 | |
6 import alice.codesegment.CodeSegment; | |
599
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
584
diff
changeset
|
7 import alice.codesegment.MetaCodeSegment; |
422 | 8 import alice.datasegment.CommandType; |
9 import alice.datasegment.Receiver; | |
10 import alice.topology.HostMessage; | |
11 | |
584
8f765e3eed24
add Topology Manager Number to Topology Node Key
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
12 /** |
8f765e3eed24
add Topology Manager Number to Topology Node Key
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
13 * This class update "topology"(topology info). |
8f765e3eed24
add Topology Manager Number to Topology Node Key
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
14 * "topology" has HashMap<String:nodeName, LinkedList<HostMessage>> |
8f765e3eed24
add Topology Manager Number to Topology Node Key
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
15 */ |
599
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
584
diff
changeset
|
16 public class RecodeTopology extends MetaCodeSegment { |
422 | 17 |
18 private Receiver info = ids.create(CommandType.TAKE); // NodeInfo | |
466 | 19 private Receiver info1 = ids.create(CommandType.TAKE); // HashMap |
422 | 20 |
21 public RecodeTopology(){ | |
22 info.setKey("nodeInfo"); | |
475 | 23 info1.setKey("topology"); |
422 | 24 } |
25 | |
26 @Override | |
27 public void run() { | |
28 HostMessage hostInfo = info.asClass(HostMessage.class); | |
29 @SuppressWarnings("unchecked") | |
30 HashMap<String, LinkedList<HostMessage>> topology = info1.asClass(HashMap.class); | |
466 | 31 LinkedList<HostMessage> connections; |
428
93995b7a9a05
change HostMessage field from parentAbsName to remoteAbsName
sugi
parents:
422
diff
changeset
|
32 if (!topology.containsKey(hostInfo.remoteAbsName)) { |
422 | 33 connections = new LinkedList<HostMessage>(); |
34 } else { | |
428
93995b7a9a05
change HostMessage field from parentAbsName to remoteAbsName
sugi
parents:
422
diff
changeset
|
35 connections = topology.get(hostInfo.remoteAbsName); |
422 | 36 } |
37 connections.add(hostInfo); | |
428
93995b7a9a05
change HostMessage field from parentAbsName to remoteAbsName
sugi
parents:
422
diff
changeset
|
38 topology.put(hostInfo.remoteAbsName, connections); |
466 | 39 // need debug option |
40 // for (LinkedList<HostMessage> list :topology.values()){ | |
41 // System.out.print(list.get(0).remoteAbsName+" : "); | |
42 // for (HostMessage host : list){ | |
43 // System.out.print("[ "+host.absName+" "+host.name+" "+host.port+" "+host.connectionName+" "+host.reverseName+" "+host.remoteAbsName+" ]"); | |
44 // } | |
45 // System.out.println(); | |
46 // } | |
435 | 47 ods.update(info1.key, topology); |
422 | 48 } |
49 | |
50 } |