view src/test/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/logupdate/LogupdateFinish.java @ 361:33c04f3bec82

add logupdate finish
author suruga
date Thu, 01 Feb 2018 19:21:23 +0900
parents f85a437e495b
children a3afcd044259
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungleNetwork.logupdate;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.ReceiveData;
import alice.datasegment.Receiver;

import java.util.List;

public class LogupdateFinish extends CodeSegment {
    Receiver finish = ids.create(CommandType.TAKE);
    private Receiver clist = ids.create(CommandType.PEEK);

    LogupdateFinish() {
        finish.setKey("finish");
        clist.setKey("_CLIST");
    }

    @Override
    public void run() {
        int command = finish.asInteger();

        @SuppressWarnings("unchecked")
        List<String> list = clist.asClass(List.class);
        for (String node : list) {//他ノードへlogの書き込み
            if (!node.equals(finish.from)) {
                ods.put(node, "finish", 1);
            }
        }
        for (String node : list) {//他ノードへlogの書き込み
            if (!node.equals(finish.from)) {
                ods.finish(node);
            }
        }
    }
}