annotate src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java @ 28:71dd46e2d706

send ServerInIt message
author sugi
date Sat, 08 Nov 2014 16:48:36 +0900
parents 14c7bd581cc2
children 0f964a1ec846
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
1 package jp.ac.u_ryukyu.alicevnc;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
2
28
71dd46e2d706 send ServerInIt message
sugi
parents: 27
diff changeset
3 import jp.ac.u_ryukyu.alicevnc.ChangeRequestMessage.MessageType;
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
4 import alice.codesegment.CodeSegment;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
5 import alice.datasegment.CommandType;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
6 import alice.datasegment.Receiver;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
7
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
8 public class CheckCurrentInfo extends CodeSegment {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
9
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
10 private Receiver info = ids.create(CommandType.TAKE); // current Server Info
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
11 private ChangeRequestMessage order;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
12
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
13 public CheckCurrentInfo(ChangeRequestMessage order){
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
14 info.setKey("currentServer");
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
15 this.order = order;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
16 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
17
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
18 @Override
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
19 public void run() {
28
71dd46e2d706 send ServerInIt message
sugi
parents: 27
diff changeset
20 System.out.println("check");
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
21 ChangeRequestMessage current = info.asClass(ChangeRequestMessage.class);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
22
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
23 if (current.allowChange) {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
24 // send Stop message to current
28
71dd46e2d706 send ServerInIt message
sugi
parents: 27
diff changeset
25 current.messageID = MessageType.StopProxy.getId();
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
26 int last = current.route.size() - 1;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
27 String address = current.route.get(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
28 current.route.remove(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
29 ods.put(address, "changeRequest", current);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
30
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
31 // update current server info
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
32 ods.update("currentServer", order);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
33 } else {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
34 // not allow to change
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
35 int last = order.route.size() - 1;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
36 String address = order.route.get(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
37 order.route.remove(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
38 ods.put(address, "changeRequest", order);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
39
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
40 // update current server info
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
41 ods.update("currentServer", current);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
42 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
43 new ReceiveChangeRequest();
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
44 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
45
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
46 }