annotate src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveAliceVNCMessage.java @ 47:9354e8a1d03b

working AliceVNC
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 19 Oct 2015 23:48:18 +0900
parents aace9df1462e
children 57ca704f86a3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
1 package jp.ac.u_ryukyu.alicevnc;
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
2
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
3 import java.util.List;
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
4
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
5 import jp.ac.u_ryukyu.alicevnc.AliceVNCMessage.MessageType;
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
6 import alice.codesegment.CodeSegment;
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
7 import alice.datasegment.CommandType;
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
8 import alice.datasegment.Receiver;
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
9
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
10 public class ReceiveAliceVNCMessage extends CodeSegment {
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
11 private Receiver info = ids.create(CommandType.TAKE);
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
12 private Receiver info1 = ids.create(CommandType.PEEK); // connection list
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
13
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
14 public ReceiveAliceVNCMessage(CodeSegment cs) {
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
15 this.aliceDaemon = cs.aliceDaemon;
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
16 info.setKey("AliceVNCMessage", this);
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
17 info1.setKey("_CLIST", this);
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
18 }
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
19
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
20 @Override
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
21 public void run() {
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
22 AliceVNCMessage order = info.asClass(AliceVNCMessage.class);
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
23
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
24 @SuppressWarnings("unchecked")
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
25 List<String> clist = info1.asClass(List.class);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
26 if (order.messageID == MessageType.ChangeRequest.getId()||
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
27 order.messageID == MessageType.CurrentVNCInfo.getId()) {
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
28 if (clist.contains("parent")){
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
29 order.route.add(info.from);
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
30 ods.put("parent", "AliceVNCMessage", order);
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
31 new ReceiveAliceVNCMessage(this);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
32 } else { // this node is root.
26
18dd339b98ea bug fix
sugi
parents: 24
diff changeset
33 order.route.add(info.from);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
34 if (order.messageID == MessageType.CurrentVNCInfo.getId()) {
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
35 ods.put("currentServer", order);
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
36 new ReceiveAliceVNCMessage(this);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
37 } else {
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
38 new CheckCurrentInfo(order, this); // check change Server flag.
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
39 }
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
40 }
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 26
diff changeset
41 } else if (order.messageID == MessageType.StartNegotiate.getId()||
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
42 order.messageID == MessageType.StopProxy.getId()||
aace9df1462e refactor
sugi
parents: 32
diff changeset
43 order.messageID == MessageType.DeniedRequest.getId()) {
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
44 if (order.route.size() == 0) {
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
45 // this node send ChangeVNCRequest
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 26
diff changeset
46 if (order.messageID == MessageType.StartNegotiate.getId()){
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 26
diff changeset
47 // negotiate VNCServer by Viewer
30
d8c6a4c7f16e change algotherm
sugi
parents: 29
diff changeset
48 ods.put("vncRight", true);
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
49 new NegotiateVNCServer(this);
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
50 new ReceiveAliceVNCMessage(this);
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
51 } else if(order.messageID == MessageType.StopProxy.getId()) {
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 26
diff changeset
52 new StopProxy();
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
53 } else if (order.messageID == MessageType.DeniedRequest.getId()) {
aace9df1462e refactor
sugi
parents: 32
diff changeset
54 // pop up window or message
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents: 26
diff changeset
55 }
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
56 } else {
34
aace9df1462e refactor
sugi
parents: 32
diff changeset
57 String address = order.getNextAddress();
aace9df1462e refactor
sugi
parents: 32
diff changeset
58 ods.put(address, "AliceVNCMessage", order);
47
9354e8a1d03b working AliceVNC
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
59 new ReceiveAliceVNCMessage(this);
24
36a9a7de314d root can receive message
sugi
parents: 23
diff changeset
60 }
23
edf1b800d8b9 need send Server request Test
sugi
parents: 22
diff changeset
61 }
22
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
62 }
fdb036159e61 create ServerChangeRequest
sugi
parents:
diff changeset
63 }