view src/main/java/jp/ac/u_ryukyu/alicevnc/NegotiateVNCServer.java @ 24:36a9a7de314d

root can receive message
author sugi
date Sat, 08 Nov 2014 10:57:01 +0900
parents edf1b800d8b9
children 6cb444e8e646
line wrap: on
line source

package jp.ac.u_ryukyu.alicevnc;

import java.util.ArrayList;

import jp.ac.u_ryukyu.alicevnc.ChangeRequestMessage.MessageType;

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);

            // currentServer Info
            ChangeRequestMessage currentServerInfo = new ChangeRequestMessage(MessageType.CurrentVNCInfo);
            currentServerInfo.name = "node0";
            currentServerInfo.changeServer = conf.getAllowChange();
            ArrayList<String> list = new ArrayList<String>();
            list.add("local");
            currentServerInfo.route = list;
            ods.put("changeRequest", currentServerInfo);
            new ReceiveServerInitMessage();
        } else {
            new ReceiveServerInitMessage("parent");
            if (conf.getProxyFlag()){
                new SendChangeRequest();

            }
        }

        new ReceiveChangeRequest();
        new SendChangeRequest();
    }

}