# HG changeset patch # User sugi # Date 1415347748 -32400 # Node ID fdb036159e6140557f1a6102295fdcbc8959ca1c # Parent eeafa2dc8445cc1f46a3a5ae7f480768a7baa4ca create ServerChangeRequest diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/ChangeRequestMessage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ChangeRequestMessage.java Fri Nov 07 17:09:08 2014 +0900 @@ -0,0 +1,18 @@ +package jp.ac.u_ryukyu.alicevnc; + +import java.util.List; + +import org.msgpack.annotation.Message; + +@Message +public class ChangeRequestMessage { + + public List route; + public boolean changeServer = false; + public String requestNodeName; + + public ChangeRequestMessage(){ + // constructor need for MessagePack + } + +} diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java Thu Nov 06 19:57:27 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java Fri Nov 07 17:09:08 2014 +0900 @@ -14,25 +14,25 @@ info.setKey("host"); info1.setKey("AliceVNCConfig"); } - + @Override public void run() { - + AliceVNCConfig conf = info1.asClass(AliceVNCConfig.class); String hostname = info.asString(); - + if ("node0".equals(hostname)) { // root node connect to vnc Server first time. String[] args = {"localhost"}; - - // negotiate VNCServer by Viewer + + // negotiate VNCServer by Viewer Viewer.main(args); new ReceiveServerInitMessage(); } else { new ReceiveServerInitMessage("parent"); - if (conf.getProxyFlag()){ - new RequestStartVNCServer(); - + if (conf.getProxyFlag()){ + new SendChangeRequest(); + } } diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java Fri Nov 07 17:09:08 2014 +0900 @@ -0,0 +1,25 @@ +package jp.ac.u_ryukyu.alicevnc; + +import java.util.List; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class ReceiveChangeRequest extends CodeSegment { + private Receiver info = ids.create(CommandType.TAKE); + private Receiver info1 = ids.create(CommandType.PEEK); // connection list + + public ReceiveChangeRequest() { + info.setKey("changeRequest"); + info1.setKey("_CLIST"); + } + + @Override + public void run() { + ChangeRequestMessage mes = info.asClass(ChangeRequestMessage.class); + + @SuppressWarnings("unchecked") + List clist = info1.asClass(List.class); + } +} \ No newline at end of file diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java Thu Nov 06 19:57:27 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -package jp.ac.u_ryukyu.alicevnc; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class RequestStartVNCServer extends CodeSegment { - - private Receiver info = ids.create(CommandType.PEEK); // hostName - private Receiver info1 = ids.create(CommandType.TAKE); // Request - private Receiver info2 = ids.create(CommandType.PEEK); // vncServerFlag - - @Override - public void run() { - boolean vncServer = info2.asClass(boolean.class); - if (vncServer) { - // vncServer running - new RequestStartVNCServer(); - } else { - String hostname = info.asString(); - if ("node0".equals(hostname)) { - - } else { - // send message - } - } - - } - -} diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java Fri Nov 07 17:09:08 2014 +0900 @@ -0,0 +1,42 @@ +package jp.ac.u_ryukyu.alicevnc; + +import java.util.List; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class SendChangeRequest extends CodeSegment { + + 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 + + public SendChangeRequest(){ + info.setKey("host"); + info1.setKey("_CLIST"); + info2.setKey("AliceVNCConfig"); + } + + @Override + public void run() { + AliceVNCConfig config = info2.asClass(AliceVNCConfig.class); + String hostname = info.asString(); + + @SuppressWarnings("unchecked") + List clist = info1.asClass(List.class); + + ChangeRequestMessage mes = new ChangeRequestMessage(); + mes.changeServer = config.getAllowChange(); + mes.requestNodeName = hostname; + + String address = "local"; + if (clist.contains("parent")){ // this node is not root. compare node0 is better? + address = "parent"; + } + + ods.put(address, "changeRequest", mes); + + } + +} diff -r eeafa2dc8445 -r fdb036159e61 src/main/java/jp/ac/u_ryukyu/alicevnc/ServerChangeMessage.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ServerChangeMessage.java Thu Nov 06 19:57:27 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -package jp.ac.u_ryukyu.alicevnc; - -import org.msgpack.annotation.Message; - -@Message -public class ServerChangeMessage { - - public String[] route; - public boolean changeServer = false; - - public ServerChangeMessage(){ - // constructor need for MessagePack - } - -}