# HG changeset patch # User sugi # Date 1415448049 -32400 # Node ID d8c6a4c7f16e04479a91f94ce2a01c23d676a2b4 # Parent 0f964a1ec8466fa027d6b64412eb0530414b36ab change algotherm diff -r 0f964a1ec846 -r d8c6a4c7f16e src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Sat Nov 08 20:26:32 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Sat Nov 08 21:00:49 2014 +0900 @@ -12,6 +12,9 @@ public void run() { ods.put("AliceVNCConfig", conf); + new CheckMyName(); + new ReceiveChangeRequest(); + new SendChangeRequest(); new NegotiateVNCServer(); } diff -r 0f964a1ec846 -r d8c6a4c7f16e src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java Sat Nov 08 20:26:32 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java Sat Nov 08 21:00:49 2014 +0900 @@ -39,7 +39,6 @@ last = mes.route.size() - 1; address = mes.route.get(last); - ods.put("changeRequest", order); mes.route.remove(last); ods.put(address, "changeRequest", mes); diff -r 0f964a1ec846 -r d8c6a4c7f16e src/main/java/jp/ac/u_ryukyu/alicevnc/CheckMyName.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckMyName.java Sat Nov 08 21:00:49 2014 +0900 @@ -0,0 +1,26 @@ +package jp.ac.u_ryukyu.alicevnc; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class CheckMyName extends CodeSegment { + + private Receiver info = ids.create(CommandType.PEEK); + + public CheckMyName(){ + info.setKey("host"); + } + + @Override + public void run() { + boolean vncRight = false; + if ("node0".equals(info.asString())) { + vncRight = true; + } else { + + } + ods.put("vncRight", vncRight); + } + +} diff -r 0f964a1ec846 -r d8c6a4c7f16e src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java Sat Nov 08 20:26:32 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java Sat Nov 08 21:00:49 2014 +0900 @@ -13,10 +13,13 @@ public class NegotiateVNCServer extends CodeSegment { private Receiver info = ids.create(CommandType.PEEK); private Receiver info1 = ids.create(CommandType.PEEK); + private Receiver info2 = ids.create(CommandType.TAKE); + public NegotiateVNCServer(){ info.setKey("host"); info1.setKey("AliceVNCConfig"); + info2.setKey("vncRight"); } @Override @@ -24,8 +27,9 @@ AliceVNCConfig conf = info1.asClass(AliceVNCConfig.class); String hostname = info.asString(); + boolean vncRight = info2.asClass(boolean.class); - if ("node0".equals(hostname)) { + if (vncRight) { // root node connect to vnc Server first time. String[] args = {"localhost"}; // negotiate VNCServer by Viewer @@ -33,7 +37,7 @@ // currentServer Info ChangeRequestMessage currentServerInfo = new ChangeRequestMessage(MessageType.CurrentVNCInfo); - currentServerInfo.name = "node0"; + currentServerInfo.name = hostname; currentServerInfo.allowChange = conf.getAllowChange(); ArrayList list = new ArrayList(); currentServerInfo.route = list; @@ -47,8 +51,7 @@ } } - new ReceiveChangeRequest(); - new SendChangeRequest(); + } } diff -r 0f964a1ec846 -r d8c6a4c7f16e src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java Sat Nov 08 20:26:32 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java Sat Nov 08 21:00:49 2014 +0900 @@ -38,7 +38,6 @@ } else { System.out.println("coming Server change request from "+ order.name+" "+order.route.size()); new CheckCurrentInfo(order); // check change Server flag. - } } } else if (order.messageID == MessageType.StartNegotiate.getId()|| @@ -47,9 +46,11 @@ if (order.messageID == MessageType.StartNegotiate.getId()){ // this node send ChangeVNCRequest System.out.println("coming StartNegotiate from "+ order.name); - String[] args = {"localhost"}; + // negotiate VNCServer by Viewer - Viewer.main(args); + ods.put("vncRight", true); + new NegotiateVNCServer(); + new ReceiveChangeRequest(); } else { new StopProxy(); }