view src/main/java/christie/topology/node/TopologyNode.java @ 68:37601b98f0da

update TopologyNode
author akahori
date Sat, 01 Sep 2018 08:10:15 +0900
parents 4e2453333508
children 36c5c050394d
line wrap: on
line source

package christie.topology.node;

import christie.annotation.Peek;
import christie.codegear.CodeGear;
import christie.codegear.CodeGearManager;
import christie.topology.HostMessage;
import christie.topology.manager.IncomingHosts;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;

public class TopologyNode extends CodeGear{

    @Peek
    TopologyNodeConfig topologyNodeConfig;

    private CodeGear startCG;
    public TopologyNode() {
    }


    public TopologyNode(CodeGear startCG) {
        this.startCG = startCG;
    }

    @Override
    protected void run(CodeGearManager cgm) {

        cgm.createRemoteDGM(topologyNodeConfig.getManagerKey(),
                            topologyNodeConfig.getManagerHostName(),
                            topologyNodeConfig.getManagerPort());


        String localHostName = null;
        try {
            localHostName = InetAddress.getLocalHost().getHostAddress();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

        getLocalDGM().put("config" , topologyNodeConfig);

        HostMessage host = new HostMessage(localHostName, cgm.localPort);
        host.cookie = topologyNodeConfig.cookie;

        getDGM(topologyNodeConfig.getManagerKey()).put("hostMessage", host);
        getLocalDGM().put("_CLIST", new ArrayList<String>());
        getLocalDGM().put("reverseCount", 0);
        getLocalDGM().put("count", 0);

        cgm.setup(new SaveCookie());
        cgm.setup(new IncomingConnectionInfo());
        cgm.setup(new IncomingReverseKey());
        cgm.setup(new ConfigurationFinish(this.startCG));

    }
}