view src/main/java/christie/topology/node/IncomingConnectionInfo.java @ 170:f9f83bb213e8

fix topology manager
author akahori
date Tue, 22 Jan 2019 18:32:39 +0900
parents c7300be0fff6
children 6eb548c188e5
line wrap: on
line source

package christie.topology.node;


import christie.annotation.Peek;
import christie.annotation.Take;
import christie.codegear.CodeGear;
import christie.codegear.CodeGearManager;
import christie.topology.HostMessage;
import christie.topology.TopologyDataGear;


public class IncomingConnectionInfo extends CodeGear {

    @Take
    HostMessage remoteNodeInfo;

    int count;

    @Take
    TopologyDataGear topoDG;

    public IncomingConnectionInfo() {
        this.count = 0;
    }

    public IncomingConnectionInfo(int count) {
        this.count = count;
    }


    @Override
    protected void run(CodeGearManager cgm) {
        String connectionName = remoteNodeInfo.getConnectionName();

        if (remoteNodeInfo.getHostName().equals("")) { // end case
            getLocalDGM().put("topoDG", topoDG);
            return;
        }

        cgm.createRemoteDGM(connectionName,
                    remoteNodeInfo.getHostName(),
                    remoteNodeInfo.getPort());

        topoDG.addConnection(connectionName);
        getLocalDGM().put("topoDG", topoDG);
        getDGM(connectionName).put("reverseNodeName",connectionName);
        count++;

        cgm.setup(new IncomingConnectionInfo(count));
    }

}