changeset 30:d8c6a4c7f16e

change algotherm
author sugi
date Sat, 08 Nov 2014 21:00:49 +0900
parents 0f964a1ec846
children 556e27a53219
files src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java src/main/java/jp/ac/u_ryukyu/alicevnc/CheckMyName.java src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java
diffstat 5 files changed, 40 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java	Sat Nov 08 20:26:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/AliceVNC.java	Sat Nov 08 21:00:49 2014 +0900
@@ -12,6 +12,9 @@
 
     public void run() {
         ods.put("AliceVNCConfig", conf);
+        new CheckMyName();
+        new ReceiveChangeRequest();
+        new SendChangeRequest();
         new NegotiateVNCServer();
     }
 
--- a/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java	Sat Nov 08 20:26:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckCurrentInfo.java	Sat Nov 08 21:00:49 2014 +0900
@@ -39,7 +39,6 @@
 
             last = mes.route.size() - 1;
             address = mes.route.get(last);
-            ods.put("changeRequest", order);
             mes.route.remove(last);
             ods.put(address, "changeRequest", mes);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/CheckMyName.java	Sat Nov 08 21:00:49 2014 +0900
@@ -0,0 +1,26 @@
+package jp.ac.u_ryukyu.alicevnc;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+
+public class CheckMyName extends CodeSegment {
+
+    private Receiver info = ids.create(CommandType.PEEK);
+
+    public CheckMyName(){
+        info.setKey("host");
+    }
+
+    @Override
+    public void run() {
+        boolean vncRight = false;
+        if ("node0".equals(info.asString())) {
+            vncRight = true;
+        } else {
+
+        }
+        ods.put("vncRight", vncRight);
+    }
+
+}
--- a/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java	Sat Nov 08 20:26:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java	Sat Nov 08 21:00:49 2014 +0900
@@ -13,10 +13,13 @@
 public class NegotiateVNCServer extends CodeSegment {
     private Receiver info = ids.create(CommandType.PEEK);
     private Receiver info1 = ids.create(CommandType.PEEK);
+    private Receiver info2 = ids.create(CommandType.TAKE);
+
 
     public NegotiateVNCServer(){
         info.setKey("host");
         info1.setKey("AliceVNCConfig");
+        info2.setKey("vncRight");
     }
 
     @Override
@@ -24,8 +27,9 @@
 
         AliceVNCConfig conf = info1.asClass(AliceVNCConfig.class);
         String hostname = info.asString();
+        boolean vncRight = info2.asClass(boolean.class);
 
-        if ("node0".equals(hostname)) {
+        if (vncRight) {
             // root node connect to vnc Server first time.
             String[] args = {"localhost"};
             // negotiate VNCServer by Viewer
@@ -33,7 +37,7 @@
 
             // currentServer Info
             ChangeRequestMessage currentServerInfo = new ChangeRequestMessage(MessageType.CurrentVNCInfo);
-            currentServerInfo.name = "node0";
+            currentServerInfo.name = hostname;
             currentServerInfo.allowChange = conf.getAllowChange();
             ArrayList<String> list = new ArrayList<String>();
             currentServerInfo.route = list;
@@ -47,8 +51,7 @@
             }
         }
 
-        new ReceiveChangeRequest();
-        new SendChangeRequest();
+
     }
 
 }
--- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java	Sat Nov 08 20:26:32 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveChangeRequest.java	Sat Nov 08 21:00:49 2014 +0900
@@ -38,7 +38,6 @@
                 } else {
                     System.out.println("coming Server change request from "+ order.name+" "+order.route.size());
                     new CheckCurrentInfo(order); // check change Server flag.
-
                 }
             }
         } else if (order.messageID == MessageType.StartNegotiate.getId()||
@@ -47,9 +46,11 @@
                 if (order.messageID == MessageType.StartNegotiate.getId()){
                     // this node send ChangeVNCRequest
                     System.out.println("coming StartNegotiate from "+ order.name);
-                    String[] args = {"localhost"};
+
                     // negotiate VNCServer by Viewer
-                    Viewer.main(args);
+                    ods.put("vncRight", true);
+                    new NegotiateVNCServer();
+                    new ReceiveChangeRequest();
                 } else {
                     new StopProxy();
                 }