# HG changeset patch # User YU # Date 1413637542 -32400 # Node ID 87d90513e8f580f9d27df40aaf359368d3e99cb9 # Parent b175d5306b11f443505944ae85a0749db0aa9d0a add ServerChange Message diff -r b175d5306b11 -r 87d90513e8f5 build.gradle --- a/build.gradle Tue Oct 07 15:52:31 2014 +0900 +++ b/build.gradle Sat Oct 18 22:05:42 2014 +0900 @@ -13,7 +13,7 @@ } dependencies { - compile 'com.glavsoft.viewer:tightvnc-jviewer:2.7.2' + //compile 'com.glavsoft.viewer:tightvnc-jviewer:2.7.2' } jar { diff -r b175d5306b11 -r 87d90513e8f5 src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Tue Oct 07 15:52:31 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Sat Oct 18 22:05:42 2014 +0900 @@ -14,12 +14,16 @@ if (conf.getProxyFlag()){ + ods.put("VNCServer", true); new StartVNCServer(); new ReceiveServerInitMessage(); + } if (conf.getViewerFlag()){ new ReceiveServerInitMessage("parent"); } + + new RequestStartVNCServer(); } } diff -r b175d5306b11 -r 87d90513e8f5 src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java Sat Oct 18 22:05:42 2014 +0900 @@ -0,0 +1,30 @@ +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 b175d5306b11 -r 87d90513e8f5 src/main/java/jp/ac/u_ryukyu/alicevnc/ServerChangeMessage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ServerChangeMessage.java Sat Oct 18 22:05:42 2014 +0900 @@ -0,0 +1,15 @@ +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 + } + +} diff -r b175d5306b11 -r 87d90513e8f5 src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java Tue Oct 07 15:52:31 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java Sat Oct 18 22:05:42 2014 +0900 @@ -10,11 +10,17 @@ private Receiver info = ids.create(CommandType.PEEK); public StartVNCServer(){ - info.setKey("host"); + info.setKey("VNCServer"); } public void run() { - String[] args = {}; - Viewer.main(args); + boolean vncFlag = info.asClass(boolean.class); + if (vncFlag) { + String[] args = {}; + Viewer.main(args); + } else { + // open window? + System.out.println("permission denied"); + } }