# HG changeset patch # User sugi # Date 1415270628 -32400 # Node ID 15398aebb0efc584f2fa5b7f45fc78df01b637cc # Parent 3a310b5e1eae22b1df81f13e1aeb4d2eeefd4115 refactor diff -r 3a310b5e1eae -r 15398aebb0ef build.gradle --- a/build.gradle Wed Nov 05 22:43:43 2014 +0900 +++ b/build.gradle Thu Nov 06 19:43:48 2014 +0900 @@ -8,13 +8,13 @@ repositories { maven(){ - url 'http://www.cr.ie.u-ryukyu.ac.jp/hg/maven/raw-file/62c3a139da57/' + url 'http://www.cr.ie.u-ryukyu.ac.jp/hg/maven/raw-file/91e712796851/' } } dependencies { - compile 'com.glavsoft.viewer:tightvnc-jviewer:2.7.2' - compile group: 'cr.ie.u_ryukyu.ac.jp', name: 'Alice', version: '1.0', ext: 'jar' + //compile 'com.glavsoft.viewer:tightvnc-jviewer:2.7.2' + //compile group: 'cr.ie.u_ryukyu.ac.jp', name: 'Alice', version: '1.0', ext: 'jar' } jar { diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Wed Nov 05 22:43:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java Thu Nov 06 19:43:48 2014 +0900 @@ -11,19 +11,8 @@ } public void run() { - - if (conf.getProxyFlag()){ - - ods.put("VNCServer", true); - new StartVNCServer(); - new ReceiveServerInitMessage(); - - } - if (conf.getViewerFlag()){ - new ReceiveServerInitMessage("parent"); - } - - new RequestStartVNCServer(); + ods.put("AliceVNCConfig", conf); + new NegotiateVNCServer(); } } diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNCConfig.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNCConfig.java Wed Nov 05 22:43:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNCConfig.java Thu Nov 06 19:43:48 2014 +0900 @@ -4,20 +4,23 @@ public class AliceVNCConfig extends TopologyNodeConfig { - private boolean treeProxy; + private boolean proxy; private boolean viewer; + private boolean change = true; public AliceVNCConfig(String[] args) { super(args); for (int i = 0; i< args.length; i++) { if ("-proxy".equals(args[i])){ // no display. behave as root - treeProxy = true; + proxy = true; viewer = false; } else if ("-d".equals(args[i])) { // behave as root with display. - treeProxy = true; + proxy = true; viewer = true; + } else if ("-c".equals(args[i])) { + change = false; } else { viewer = true; } @@ -29,7 +32,10 @@ } public boolean getProxyFlag(){ - return treeProxy; + return proxy; } + public boolean getAllowChange(){ + return change; + } } diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java Thu Nov 06 19:43:48 2014 +0900 @@ -0,0 +1,41 @@ +package jp.ac.u_ryukyu.alicevnc; + +import com.glavsoft.viewer.Viewer; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class NegotiateVNCServer extends CodeSegment { + private Receiver info = ids.create(CommandType.PEEK); + private Receiver info1 = ids.create(CommandType.PEEK); + + public NegotiateVNCServer(){ + 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 + Viewer.main(args); + new ReceiveServerInitMessage(); + } else { + new ReceiveServerInitMessage("parent"); + if (conf.getProxyFlag()){ + new RequestStartVNCServer(); + + } + } + + } + +} diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveServerInitMessage.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveServerInitMessage.java Wed Nov 05 22:43:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveServerInitMessage.java Thu Nov 06 19:43:48 2014 +0900 @@ -57,8 +57,9 @@ AliceVNCMessage message = new AliceVNCMessage(); message.setServerInitMessage(serverInitMessage); - ods.put("AliceVNCInitMessage", message); + ods.update("AliceVNCInitMessage", message); } else { + ods.update("AliceVNCInitMessage", info.getReceiveData()); AliceVNCMessage message = info.asClass(AliceVNCMessage.class); pixelFormat = message.getPixelFormat(); width = message.width; diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java Wed Nov 05 22:43:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java Thu Nov 06 19:43:48 2014 +0900 @@ -37,7 +37,7 @@ // not need send data comes from // Data Segment from other node is already serialized ods.put(node, "aliceVNCMessage", info1.getReceiveData()); - ods.setCompressFlag(true); + //ods.setCompressFlag(true); ods.put(node, "pixelByteArray", info2.getReceiveData()); ods.setCompressFlag(false); } diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/StartAliceVNC.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/StartAliceVNC.java Wed Nov 05 22:43:43 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/StartAliceVNC.java Thu Nov 06 19:43:48 2014 +0900 @@ -12,7 +12,7 @@ new TopologyNode(conf, cs); } else { cs.ods.put("_CLIST", new ArrayList()); - cs.ods.put("host", "local0"); + cs.ods.put("host", "node0"); cs.execute(); } } diff -r 3a310b5e1eae -r 15398aebb0ef src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java Wed Nov 05 22:43:43 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -package jp.ac.u_ryukyu.alicevnc; - -import com.glavsoft.viewer.Viewer; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class StartVNCServer extends CodeSegment { - private Receiver info = ids.create(CommandType.PEEK); - - public StartVNCServer(){ - info.setKey("VNCServer"); - } - public void run() { - boolean vncFlag = info.asClass(boolean.class); - if (vncFlag) { - String[] args = {}; - Viewer.main(args); - } else { - // open window? - System.out.println("permission denied"); - } - - } - -}