Mercurial > hg > Database > Alice
comparison src/alice/topology/manager/reconnection/CheckConnectionList.java @ 269:9982e1c4f099
debugging reconnectManager
author | sugi |
---|---|
date | Tue, 20 Aug 2013 17:35:03 +0900 |
parents | |
children | 23e53aaa8720 |
comparison
equal
deleted
inserted
replaced
268:709936c00c89 | 269:9982e1c4f099 |
---|---|
1 package alice.topology.manager.reconnection; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.HashMap; | |
5 import java.util.List; | |
6 | |
7 import alice.codesegment.CodeSegment; | |
8 import alice.datasegment.CommandType; | |
9 import alice.datasegment.Receiver; | |
10 import alice.topology.HostMessage; | |
11 | |
12 public class CheckConnectionList extends CodeSegment { | |
13 | |
14 private Receiver name = ids.create(CommandType.TAKE); | |
15 private Receiver connection = ids.create(CommandType.TAKE); | |
16 private Receiver abs = ids.create(CommandType.PEEK); | |
17 private Receiver clone = ids.create(CommandType.TAKE); | |
18 | |
19 public CheckConnectionList(){ | |
20 name.setKey("_RECABSNAME"); | |
21 connection.setKey("connection"); | |
22 abs.setKey("_ABSIPTABLE"); | |
23 clone.setKey("HMCLONE"); | |
24 } | |
25 | |
26 @Override | |
27 public void run() { | |
28 System.out.println("CheckConnectionList"); | |
29 @SuppressWarnings("unchecked") | |
30 HashMap<String, ArrayList<HostMessage>> connectionList = connection.asClass(HashMap.class); | |
31 @SuppressWarnings("unchecked") | |
32 List<HostMessage> ABSIPList = abs.asClass(List.class); | |
33 String absName = name.asClass(String.class); | |
34 HostMessage oldInfo = clone.asClass(HostMessage.class); | |
35 HostMessage newInfo = null; | |
36 for (HostMessage mes : ABSIPList){ | |
37 if (mes.absName.equals(absName)){ | |
38 newInfo = mes; | |
39 break; | |
40 } | |
41 } | |
42 | |
43 List<HostMessage> clist = connectionList.get(absName); | |
44 for (HostMessage mes : clist){ | |
45 ods.put(absName, mes); | |
46 for (HostMessage mes2 : ABSIPList){ | |
47 if (mes.name.equals(mes2.name)&&mes.port == mes2.port){ | |
48 String absName2 = mes2.getABSName(); | |
49 List<HostMessage> clist2 = connectionList.get(absName2); | |
50 for (HostMessage mes3 : clist2){ | |
51 if (mes3.name.equals(oldInfo.name)&&mes3.port == oldInfo.port){ | |
52 mes3.name = newInfo.name; | |
53 mes3.port = newInfo.port; | |
54 break; | |
55 } | |
56 ods.put(absName, "_RECODATA", mes3); | |
57 } | |
58 break; | |
59 } | |
60 } | |
61 } | |
62 | |
63 ods.update("connection", connectionList); | |
64 new ReceiveError(); | |
65 } | |
66 } | |
67 |