diff src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java @ 22:fdb036159e61

create ServerChangeRequest
author sugi
date Fri, 07 Nov 2014 17:09:08 +0900
parents src/main/java/jp/ac/u_ryukyu/alicevnc/RequestStartVNCServer.java@87d90513e8f5
children edf1b800d8b9
line wrap: on
line diff
--- /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);
+
+    }
+
+}