view src/main/java/christie/topology/manager/ConfigWaiter.java @ 272:b592fe1d4a4e default tip

create example Attendance
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 01 Jul 2021 20:41:07 +0900
parents 6eb548c188e5
children
line wrap: on
line source

package christie.topology.manager;


import christie.annotation.Peek;
import christie.annotation.Take;
import christie.codegear.CodeGear;
import christie.codegear.CodeGearManager;
import christie.topology.Message;


import java.util.LinkedList;

public class ConfigWaiter extends CodeGear {

    @Peek
    LinkedList<String> waiterNodeNames;

    @Take
    Message _DONEMESSAGE;

    @Take
    int nodeNum;

    public ConfigWaiter() { }

    @Override
    protected void run(CodeGearManager cgm) {
        nodeNum--;
        if (nodeNum == 0) {
            getLocalDGM().put("_STARTMESSAGE", new Message());
            for (String nodeName: waiterNodeNames) getDGM(nodeName).put("_STARTMESSAGE", new Message());
            getLocalDGM().put("startTime", System.currentTimeMillis());
            getLocalDGM().put("running", true);

            return;
        }

        cgm.setup(new ConfigWaiter());
        getLocalDGM().put("nodeNum", nodeNum);
    }

}