annotate src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java @ 30:d8c6a4c7f16e

change algotherm
author sugi
date Sat, 08 Nov 2014 21:00:49 +0900
parents 14c7bd581cc2
children 556e27a53219
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
4faa4619a02f refactor
YU
parents:
diff changeset
1 package jp.ac.u_ryukyu.alicevnc;
4faa4619a02f refactor
YU
parents:
diff changeset
2
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
3 import java.util.ArrayList;
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
4
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
5 import jp.ac.u_ryukyu.alicevnc.ChangeRequestMessage.MessageType;
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
6
7
4faa4619a02f refactor
YU
parents:
diff changeset
7 import com.glavsoft.viewer.Viewer;
4faa4619a02f refactor
YU
parents:
diff changeset
8
4faa4619a02f refactor
YU
parents:
diff changeset
9 import alice.codesegment.CodeSegment;
4faa4619a02f refactor
YU
parents:
diff changeset
10 import alice.datasegment.CommandType;
4faa4619a02f refactor
YU
parents:
diff changeset
11 import alice.datasegment.Receiver;
4faa4619a02f refactor
YU
parents:
diff changeset
12
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
13 public class NegotiateVNCServer extends CodeSegment {
7
4faa4619a02f refactor
YU
parents:
diff changeset
14 private Receiver info = ids.create(CommandType.PEEK);
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
15 private Receiver info1 = ids.create(CommandType.PEEK);
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
16 private Receiver info2 = ids.create(CommandType.TAKE);
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
17
7
4faa4619a02f refactor
YU
parents:
diff changeset
18
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
19 public NegotiateVNCServer(){
15398aebb0ef refactor
sugi
parents: 15
diff changeset
20 info.setKey("host");
15398aebb0ef refactor
sugi
parents: 15
diff changeset
21 info1.setKey("AliceVNCConfig");
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
22 info2.setKey("vncRight");
7
4faa4619a02f refactor
YU
parents:
diff changeset
23 }
22
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
24
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
25 @Override
7
4faa4619a02f refactor
YU
parents:
diff changeset
26 public void run() {
22
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
27
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
28 AliceVNCConfig conf = info1.asClass(AliceVNCConfig.class);
15398aebb0ef refactor
sugi
parents: 15
diff changeset
29 String hostname = info.asString();
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
30 boolean vncRight = info2.asClass(boolean.class);
22
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
31
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
32 if (vncRight) {
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
33 // root node connect to vnc Server first time.
15398aebb0ef refactor
sugi
parents: 15
diff changeset
34 String[] args = {"localhost"};
22
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
35 // negotiate VNCServer by Viewer
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
36 Viewer.main(args);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
37
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
38 // currentServer Info
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
39 ChangeRequestMessage currentServerInfo = new ChangeRequestMessage(MessageType.CurrentVNCInfo);
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
40 currentServerInfo.name = hostname;
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 25
diff changeset
41 currentServerInfo.allowChange = conf.getAllowChange();
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
42 ArrayList<String> list = new ArrayList<String>();
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
43 currentServerInfo.route = list;
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
44 ods.put("changeRequest", currentServerInfo);
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
45 new ReceiveServerInitMessage();
15
87d90513e8f5 add ServerChange Message
YU
parents: 7
diff changeset
46 } else {
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
47 new ReceiveServerInitMessage("parent");
22
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
48 if (conf.getProxyFlag()){
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
49 new SendChangeRequest();
fdb036159e61 create ServerChangeRequest
sugi
parents: 20
diff changeset
50
20
15398aebb0ef refactor
sugi
parents: 15
diff changeset
51 }
15
87d90513e8f5 add ServerChange Message
YU
parents: 7
diff changeset
52 }
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
53
30
d8c6a4c7f16e change algotherm
sugi
parents: 27
diff changeset
54
7
4faa4619a02f refactor
YU
parents:
diff changeset
55 }
4faa4619a02f refactor
YU
parents:
diff changeset
56
4faa4619a02f refactor
YU
parents:
diff changeset
57 }