Mercurial > hg > Applications > AliceVNC
view src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java @ 86:4a8755a30aa8 default tip
add topology manager number to 'host' key
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 10 Feb 2016 22:54:46 +0900 |
parents | 57ca704f86a3 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.alicevnc; import java.util.ArrayList; import java.util.List; import jp.ac.u_ryukyu.alicevnc.AliceVNCMessage.MessageType; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; public class SendChangeRequest extends CodeSegment { private int topMNumber; private Receiver info = ids.create(CommandType.PEEK); // hostName private Receiver info1 = ids.create(CommandType.PEEK); // connection list private Receiver info2 = ids.create(CommandType.PEEK); // AliceVNCConfig private Receiver info3 = ids.create(CommandType.TAKE); // request public SendChangeRequest(int topMNumber){ this.topMNumber = topMNumber; for (int i = 1; i <= topMNumber; i++) { info.setKey("host"+i); } info1.setKey("_CLIST"); info2.setKey("AliceVNCConfig"); info3.setKey("Request"); } @Override public void run() { AliceVNCConfig config = info2.asClass(AliceVNCConfig.class); String hostname = info.asString(); @SuppressWarnings("unchecked") List<String> clist = info1.asClass(List.class); AliceVNCMessage mes = new AliceVNCMessage(MessageType.ChangeRequest); mes.allowChange = config.getAllowChange(); mes.route = new ArrayList<String>(); mes.name = hostname; String address = "local"; if (clist.contains("parent")){ // this node is not root. compare node0 is better? address = "parent"; } ods.put(address, "AliceVNCMessage", mes); new SendChangeRequest(topMNumber); } }