345
|
1 package alice.topology.manager.reconnection;
|
|
2
|
|
3 import java.util.List;
|
|
4
|
|
5 import alice.codesegment.CodeSegment;
|
|
6 import alice.datasegment.CommandType;
|
|
7 import alice.datasegment.DataSegment;
|
|
8 import alice.datasegment.Receiver;
|
|
9 import alice.topology.HostMessage;
|
|
10
|
|
11 public class CheckABSName extends CodeSegment{
|
|
12 private Receiver abs = ids.create(CommandType.PEEK);
|
|
13 private Receiver host = ids.create(CommandType.TAKE);
|
|
14 private HostMessage message;
|
|
15
|
|
16 public CheckABSName(HostMessage mes) {
|
|
17 message = mes;
|
|
18 abs.setKey("_ABSIPTABLE");
|
|
19 host.setKey("host");
|
|
20 }
|
|
21
|
|
22 @Override
|
|
23 public void run() {
|
|
24 System.out.println("CheckABSName");
|
|
25 @SuppressWarnings("unchecked")
|
|
26 List<HostMessage> ABSIPList = abs.asClass(List.class);
|
|
27 HostMessage hostInfo = host.asClass(HostMessage.class);
|
|
28 for (HostMessage mes : ABSIPList){
|
|
29 if (mes.name.equals(message.name)&&mes.port == message.port){
|
|
30 DataSegment.remove(mes.getABSName());
|
|
31 DataSegment.connect(mes.getABSName(), "", hostInfo.name, hostInfo.port, hostInfo.reconnectFlag);
|
|
32 ods.put(mes.getABSName(), "host", mes.getABSName());
|
|
33 ods.put("_RECABSNAME", mes.getABSName());
|
|
34 ods.put("_HMCLONE", new HostMessage(mes.name, mes.port));
|
|
35 mes.port = hostInfo.port;
|
|
36 mes.name = hostInfo.name;
|
|
37 ods.update("_ABSIPTABLE", ABSIPList);
|
|
38 new CheckConnectionList();
|
|
39 return;
|
|
40 }
|
|
41 }
|
|
42 ods.put("host", hostInfo);
|
|
43 new ReceiveError();
|
|
44 System.out.println("not match");
|
|
45 }
|
|
46
|
|
47 }
|