view src/main/java/jp/ac/u_ryukyu/alicevnc/SendChangeRequest.java @ 55:fe627049e289

update maven added compressed to DSM name
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 16 Nov 2015 20:06:13 +0900
parents 57ca704f86a3
children
line wrap: on
line source

package jp.ac.u_ryukyu.alicevnc;

import java.util.ArrayList;
import java.util.List;

import jp.ac.u_ryukyu.alicevnc.AliceVNCMessage.MessageType;
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
    private Receiver info3 = ids.create(CommandType.TAKE); // request

    public SendChangeRequest(){
        info.setKey("compressedLocal","host");
        info1.setKey("compressedLocal","_CLIST");
        info2.setKey("compressedLocal","AliceVNCConfig");
        info3.setKey("compressedLocal","Request");
    }

    @Override
    public void run() {
        AliceVNCConfig config = info2.asClass(AliceVNCConfig.class);
        String hostname = info.asString();

        @SuppressWarnings("unchecked")
        List<String> clist = info1.asClass(List.class);

        AliceVNCMessage mes = new AliceVNCMessage(MessageType.ChangeRequest);
        mes.allowChange = config.getAllowChange();
        mes.route = new ArrayList<String>();
        mes.name = hostname;

        String address = "local";
        if (clist.contains("parent")){ // this node is not root. compare node0 is better?
            address = "parent";
        }

        ods.put("compressed" + address, "AliceVNCMessage", mes);
        new SendChangeRequest();
    }

}