annotate src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java @ 32:7d65ad341cc9

refactor
author sugi
date Sun, 09 Nov 2014 11:40:40 +0900
parents 556e27a53219
children aace9df1462e
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
29
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
3 import java.util.ArrayList;
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
4
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
5 import jp.ac.u_ryukyu.alicevnc.AliceVNCMessage.MessageType;
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
6 import alice.codesegment.CodeSegment;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
7 import alice.datasegment.CommandType;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
8 import alice.datasegment.Receiver;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
9
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
10 public class CheckCurrentInfo extends CodeSegment {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
11
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
12 private Receiver info = ids.create(CommandType.TAKE); // current Server Info
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
13 private AliceVNCMessage order;
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
14
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
15 public CheckCurrentInfo(AliceVNCMessage order){
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
16 info.setKey("currentServer");
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
17 this.order = order;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
18 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
19
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
20 @Override
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
21 public void run() {
28
71dd46e2d706 send ServerInIt message
sugi
parents: 27
diff changeset
22 System.out.println("check");
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
23 AliceVNCMessage current = info.asClass(AliceVNCMessage.class);
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
24
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
25 if (current.allowChange) {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
26 // send Stop message to current
28
71dd46e2d706 send ServerInIt message
sugi
parents: 27
diff changeset
27 current.messageID = MessageType.StopProxy.getId();
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
28 int last = current.route.size() - 1;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
29 String address = current.route.get(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
30 current.route.remove(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
31 ods.put(address, "changeRequest", current);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
32
32
7d65ad341cc9 refactor
sugi
parents: 31
diff changeset
33 AliceVNCMessage mes = new AliceVNCMessage(MessageType.StartNegotiate);
29
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
34 mes.route = new ArrayList<String>();
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
35 for (String s : order.route) {
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
36 mes.route.add(s);
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
37 }
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
38 mes.name = "node0";
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
39
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
40 last = mes.route.size() - 1;
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
41 address = mes.route.get(last);
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
42 mes.route.remove(last);
0f964a1ec846 server change request cant receive
sugi
parents: 28
diff changeset
43 ods.put(address, "changeRequest", mes);
27
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
44 } else {
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
45 // not allow to change
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
46 int last = order.route.size() - 1;
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
47 String address = order.route.get(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
48 order.route.remove(last);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
49 ods.put(address, "changeRequest", order);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
50
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
51 // update current server info
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
52 ods.update("currentServer", current);
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
53 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
54 new ReceiveChangeRequest();
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
55 }
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
56
14c7bd581cc2 implement change VNC Server protocol
sugi
parents:
diff changeset
57 }