changeset 22:fdb036159e61

create ServerChangeRequest
author sugi
date Fri, 07 Nov 2014 17:09:08 +0900
parents eeafa2dc8445
children edf1b800d8b9
files src/main/java/jp/ac/u_ryukyu/alicevnc/ChangeRequestMessage.java src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java src/main/java/jp/ac/u_ryukyu/alicevnc/ServerChangeMessage.java
diffstat 6 files changed, 93 insertions(+), 53 deletions(-) [+]
line wrap: on
line diff
--- /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<String> route;
+    public boolean changeServer = false;
+    public String requestNodeName;
+
+    public ChangeRequestMessage(){
+        // constructor need for MessagePack
+    }
+
+}
--- 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();
+
             }
         }
 
--- /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<String> clist = info1.asClass(List.class);
+    }
+}
\ No newline at end of file
--- 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
-            }
-        }
-        
-    }
-
-}
--- /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<String> 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);
+
+    }
+
+}
--- 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 
-    }
-
-}