view src/main/java/christie/topology/manager/ConfigWaiter.java @ 160:3b9be156e280

update topologymanager
author akahori
date Mon, 21 Jan 2019 21:40:53 +0900
parents a0391cfdcef6
children 5c5a5da0d13d
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 java.util.LinkedList;

public class ConfigWaiter extends CodeGear {

    @Peek
    LinkedList<String> waiterNodeNames;
    @Take
    String nodePrepareDone;

    @Take
    int _NODECOUNT;

    public ConfigWaiter() { }

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

            return;
        }

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

}