Mercurial > hg > Applications > AliceVNC
view src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java @ 29:0f964a1ec846
server change request cant receive
author | sugi |
---|---|
date | Sat, 08 Nov 2014 20:26:32 +0900 |
parents | 71dd46e2d706 |
children | d8c6a4c7f16e |
line wrap: on
line source
package jp.ac.u_ryukyu.alicevnc; import java.util.ArrayList; import jp.ac.u_ryukyu.alicevnc.ChangeRequestMessage.MessageType; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; public class CheckCurrentInfo extends CodeSegment { private Receiver info = ids.create(CommandType.TAKE); // current Server Info private ChangeRequestMessage order; public CheckCurrentInfo(ChangeRequestMessage order){ info.setKey("currentServer"); this.order = order; } @Override public void run() { System.out.println("check"); ChangeRequestMessage current = info.asClass(ChangeRequestMessage.class); if (current.allowChange) { // send Stop message to current current.messageID = MessageType.StopProxy.getId(); int last = current.route.size() - 1; String address = current.route.get(last); current.route.remove(last); ods.put(address, "changeRequest", current); ChangeRequestMessage mes = new ChangeRequestMessage(MessageType.StartNegotiate); mes.route = new ArrayList<String>(); for (String s : order.route) { mes.route.add(s); } mes.name = "node0"; last = mes.route.size() - 1; address = mes.route.get(last); ods.put("changeRequest", order); mes.route.remove(last); ods.put(address, "changeRequest", mes); // update current server info //ods.update("currentServer", order); } else { // not allow to change int last = order.route.size() - 1; String address = order.route.get(last); order.route.remove(last); ods.put(address, "changeRequest", order); // update current server info ods.update("currentServer", current); } new ReceiveChangeRequest(); } }