15
|
1 package jp.ac.u_ryukyu.alicevnc;
|
|
2
|
22
|
3 import java.util.List;
|
|
4
|
15
|
5 import alice.codesegment.CodeSegment;
|
|
6 import alice.datasegment.CommandType;
|
|
7 import alice.datasegment.Receiver;
|
|
8
|
22
|
9 public class SendChangeRequest extends CodeSegment {
|
|
10
|
15
|
11 private Receiver info = ids.create(CommandType.PEEK); // hostName
|
22
|
12 private Receiver info1 = ids.create(CommandType.PEEK); // connection list
|
|
13 private Receiver info2 = ids.create(CommandType.PEEK); // AliceVNCConfig
|
|
14
|
|
15 public SendChangeRequest(){
|
|
16 info.setKey("host");
|
|
17 info1.setKey("_CLIST");
|
|
18 info2.setKey("AliceVNCConfig");
|
|
19 }
|
|
20
|
15
|
21 @Override
|
|
22 public void run() {
|
22
|
23 AliceVNCConfig config = info2.asClass(AliceVNCConfig.class);
|
|
24 String hostname = info.asString();
|
|
25
|
|
26 @SuppressWarnings("unchecked")
|
|
27 List<String> clist = info1.asClass(List.class);
|
|
28
|
|
29 ChangeRequestMessage mes = new ChangeRequestMessage();
|
|
30 mes.changeServer = config.getAllowChange();
|
|
31 mes.requestNodeName = hostname;
|
|
32
|
|
33 String address = "local";
|
|
34 if (clist.contains("parent")){ // this node is not root. compare node0 is better?
|
|
35 address = "parent";
|
15
|
36 }
|
22
|
37
|
|
38 ods.put(address, "changeRequest", mes);
|
|
39
|
15
|
40 }
|
|
41
|
|
42 }
|