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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
422
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
1 package alice.topology.manager;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
2
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
3 import java.util.HashMap;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
4 import java.util.LinkedList;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
5
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
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
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
8 import alice.datasegment.CommandType;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
9 import alice.datasegment.Receiver;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
10 import alice.topology.HostMessage;
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
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
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
17
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
18 private Receiver info = ids.create(CommandType.TAKE); // NodeInfo
466
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
19 private Receiver info1 = ids.create(CommandType.TAKE); // HashMap
422
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
20
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
21 public RecodeTopology(){
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
22 info.setKey("nodeInfo");
475
fac27e395930 change decide children algorithm
sugi
parents: 472
diff changeset
23 info1.setKey("topology");
422
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
24 }
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
25
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
26 @Override
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
27 public void run() {
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
28 HostMessage hostInfo = info.asClass(HostMessage.class);
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
29 @SuppressWarnings("unchecked")
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
30 HashMap<String, LinkedList<HostMessage>> topology = info1.asClass(HashMap.class);
466
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
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
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
33 connections = new LinkedList<HostMessage>();
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
34 } else {
428
93995b7a9a05 change HostMessage field from parentAbsName to remoteAbsName
sugi
parents: 422
diff changeset
35 connections = topology.get(hostInfo.remoteAbsName);
422
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
36 }
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
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
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
39 // need debug option
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
40 // for (LinkedList<HostMessage> list :topology.values()){
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
41 // System.out.print(list.get(0).remoteAbsName+" : ");
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
42 // for (HostMessage host : list){
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
43 // System.out.print("[ "+host.absName+" "+host.name+" "+host.port+" "+host.connectionName+" "+host.reverseName+" "+host.remoteAbsName+" ]");
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
44 // }
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
45 // System.out.println();
268b1280dc18 remove debug message
sugi
parents: 435
diff changeset
46 // }
435
41bb86275910 send MD5 "mode -t"
sugi
parents: 429
diff changeset
47 ods.update(info1.key, topology);
422
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
48 }
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
49
2c6f86320691 add topology state recoder
sugi
parents:
diff changeset
50 }