view src/main/java/christie/topology/manager/TopologyManager.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.codegear.CodeGear;
import christie.codegear.CodeGearManager;

import java.util.HashMap;
import java.util.LinkedList;

import christie.topology.HostMessage;
import christie.topology.Message;

public class TopologyManager extends CodeGear {

    @Peek
    TopologyManagerConfig topologyManagerConfig;

    public TopologyManager() {
    }

    @Override
    protected void run(CodeGearManager cgm) {
        cgm.setup(new CheckComingHost());
        getLocalDGM().put("absCookieTable", new HashMap<String, String>());

        if(topologyManagerConfig.dynamic) {
            getLocalDGM().put("running", true);
            getLocalDGM().put("_STARTMESSAGE", new Message());

            if (topologyManagerConfig.type == TopologyType.Tree) {
                getLocalDGM().put("parentManager", new ParentManager(topologyManagerConfig.hasChild));
                getLocalDGM().put("nameTable", new HashMap<String, HostMessage>());
                getLocalDGM().put("hostCount", 0);
                cgm.setup(new CreateTreeTopology());
                //cgm.setup(new ReceiveDisconnectMessage());
            }

        }else{
            getLocalDGM().put("running", false);
            cgm.setup(new FileParser());
            cgm.setup(new IncomingHosts());
            cgm.setup(new ConfigWaiter());

        }

        cgm.setup(new CreateHash());
        cgm.setup(new TopologyFinish());

        getLocalDGM().put("topology", new HashMap<String, LinkedList<HostMessage>>());
        getLocalDGM().put("createdList", new LinkedList<String>());
    }


}