Mercurial > hg > Applications > AliceVNC
annotate src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveAliceVNCMessage.java @ 52:57ca704f86a3
back version Alice tag:work-compressedDSM
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 09 Nov 2015 16:09:16 +0900 |
parents | 9354e8a1d03b |
children | fe627049e289 4a8755a30aa8 |
rev | line source |
---|---|
22 | 1 package jp.ac.u_ryukyu.alicevnc; |
2 | |
3 import java.util.List; | |
4 | |
32 | 5 import jp.ac.u_ryukyu.alicevnc.AliceVNCMessage.MessageType; |
22 | 6 import alice.codesegment.CodeSegment; |
7 import alice.datasegment.CommandType; | |
8 import alice.datasegment.Receiver; | |
9 | |
34 | 10 public class ReceiveAliceVNCMessage extends CodeSegment { |
22 | 11 private Receiver info = ids.create(CommandType.TAKE); |
12 private Receiver info1 = ids.create(CommandType.PEEK); // connection list | |
13 | |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
14 public ReceiveAliceVNCMessage() { |
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
15 info.setKey("AliceVNCMessage"); |
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
16 info1.setKey("_CLIST"); |
22 | 17 } |
18 | |
19 @Override | |
20 public void run() { | |
32 | 21 AliceVNCMessage order = info.asClass(AliceVNCMessage.class); |
22 | 22 |
23 @SuppressWarnings("unchecked") | |
24 List<String> clist = info1.asClass(List.class); | |
24 | 25 if (order.messageID == MessageType.ChangeRequest.getId()|| |
26 order.messageID == MessageType.CurrentVNCInfo.getId()) { | |
27 if (clist.contains("parent")){ | |
28 order.route.add(info.from); | |
34 | 29 ods.put("parent", "AliceVNCMessage", order); |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
30 new ReceiveAliceVNCMessage(); |
24 | 31 } else { // this node is root. |
26 | 32 order.route.add(info.from); |
24 | 33 if (order.messageID == MessageType.CurrentVNCInfo.getId()) { |
34 ods.put("currentServer", order); | |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
35 new ReceiveAliceVNCMessage(); |
24 | 36 } else { |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
37 new CheckCurrentInfo(order); // check change Server flag. |
24 | 38 } |
39 } | |
27 | 40 } else if (order.messageID == MessageType.StartNegotiate.getId()|| |
34 | 41 order.messageID == MessageType.StopProxy.getId()|| |
42 order.messageID == MessageType.DeniedRequest.getId()) { | |
24 | 43 if (order.route.size() == 0) { |
34 | 44 // this node send ChangeVNCRequest |
27 | 45 if (order.messageID == MessageType.StartNegotiate.getId()){ |
46 // negotiate VNCServer by Viewer | |
30 | 47 ods.put("vncRight", true); |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
48 new NegotiateVNCServer(); |
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
49 new ReceiveAliceVNCMessage(); |
34 | 50 } else if(order.messageID == MessageType.StopProxy.getId()) { |
27 | 51 new StopProxy(); |
34 | 52 } else if (order.messageID == MessageType.DeniedRequest.getId()) { |
53 // pop up window or message | |
27 | 54 } |
24 | 55 } else { |
34 | 56 String address = order.getNextAddress(); |
57 ods.put(address, "AliceVNCMessage", order); | |
52
57ca704f86a3
back version Alice tag:work-compressedDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
58 new ReceiveAliceVNCMessage(); |
24 | 59 } |
23 | 60 } |
22 | 61 } |
62 } |