changeset 20:15398aebb0ef

refactor
author sugi
date Thu, 06 Nov 2014 19:43:48 +0900
parents 3a310b5e1eae
children eeafa2dc8445
files build.gradle src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNCConfig.java src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveServerInitMessage.java src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java src/main/java/jp/ac/u_ryukyu/alicevnc/StartAliceVNC.java src/main/java/jp/ac/u_ryukyu/alicevnc/StartVNCServer.java
diffstat 8 files changed, 60 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- 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 {
--- 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();
     }
 
 }
--- 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;
+    }
 }
--- /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();
+                
+            }
+        }
+
+    }
+
+}
--- 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;
--- 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);
             }
--- 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<String>());
-            cs.ods.put("host", "local0");
+            cs.ods.put("host", "node0");
             cs.execute();
         }
     }
--- 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");
-        }
-
-    }
-
-}