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