7
|
1 package jp.ac.u_ryukyu.alicevnc;
|
|
2
|
24
|
3 import java.util.ArrayList;
|
|
4
|
|
5 import jp.ac.u_ryukyu.alicevnc.ChangeRequestMessage.MessageType;
|
|
6
|
7
|
7 import com.glavsoft.viewer.Viewer;
|
|
8
|
|
9 import alice.codesegment.CodeSegment;
|
|
10 import alice.datasegment.CommandType;
|
|
11 import alice.datasegment.Receiver;
|
|
12
|
20
|
13 public class NegotiateVNCServer extends CodeSegment {
|
7
|
14 private Receiver info = ids.create(CommandType.PEEK);
|
20
|
15 private Receiver info1 = ids.create(CommandType.PEEK);
|
7
|
16
|
20
|
17 public NegotiateVNCServer(){
|
|
18 info.setKey("host");
|
|
19 info1.setKey("AliceVNCConfig");
|
7
|
20 }
|
22
|
21
|
20
|
22 @Override
|
7
|
23 public void run() {
|
22
|
24
|
20
|
25 AliceVNCConfig conf = info1.asClass(AliceVNCConfig.class);
|
|
26 String hostname = info.asString();
|
22
|
27
|
20
|
28 if ("node0".equals(hostname)) {
|
|
29 // root node connect to vnc Server first time.
|
|
30 String[] args = {"localhost"};
|
22
|
31 // negotiate VNCServer by Viewer
|
20
|
32 Viewer.main(args);
|
24
|
33
|
|
34 // currentServer Info
|
|
35 ChangeRequestMessage currentServerInfo = new ChangeRequestMessage(MessageType.CurrentVNCInfo);
|
|
36 currentServerInfo.name = "node0";
|
27
|
37 currentServerInfo.allowChange = conf.getAllowChange();
|
24
|
38 ArrayList<String> list = new ArrayList<String>();
|
|
39 currentServerInfo.route = list;
|
|
40 ods.put("changeRequest", currentServerInfo);
|
20
|
41 new ReceiveServerInitMessage();
|
15
|
42 } else {
|
20
|
43 new ReceiveServerInitMessage("parent");
|
22
|
44 if (conf.getProxyFlag()){
|
|
45 new SendChangeRequest();
|
|
46
|
20
|
47 }
|
15
|
48 }
|
24
|
49
|
23
|
50 new ReceiveChangeRequest();
|
|
51 new SendChangeRequest();
|
7
|
52 }
|
|
53
|
|
54 }
|