view src/main/java/alice/topology/node/IncomingConnectionInfo.java @ 655:1c93e82e05c6 default tip

fix timestamp
author suruga
date Sat, 17 Feb 2018 00:33:00 +0900
parents e321c5ec9b58
children
line wrap: on
line source

package alice.topology.node;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.DataSegment;
import alice.datasegment.Receiver;
import alice.topology.HostMessage;
import org.apache.log4j.Logger;

public class IncomingConnectionInfo extends CodeSegment {

    public Receiver hostInfo = ids.create(CommandType.TAKE);
    private String absName;
    private int count;
    private Logger log = Logger.getLogger(IncomingConnectionInfo.class);
    private String managerKey;

    public IncomingConnectionInfo(String absName, int count, String managerKey) {
        this.absName = absName;
        this.count = count;
        this.managerKey = managerKey;
        hostInfo.setKey(managerKey,absName);
    }



    @Override
    public void run() {
        HostMessage hostInfo = this.hostInfo.asClass(HostMessage.class);
        log.info(hostInfo.toString());
        if ( hostInfo.name.equals("")) { // end case
            log.info(" topology node finished " + absName);
            ods.put("local", "configNodeNum", count);
            return ;
        }
        log.info("topology node " + absName + " will connect to " + hostInfo.name );
        if (DataSegment.contains(hostInfo.connectionName)) {
            // need to wait remove by DeleteConnection
            ods.put("manager", absName, hostInfo);
        } else {
            DataSegment.connect(hostInfo.connectionName, hostInfo.reverseName, hostInfo.name, hostInfo.port);
            ods.put(hostInfo.connectionName, "reverseKey", hostInfo.reverseName);
            count++;

            ods.put("cMember", hostInfo.connectionName);
            new CreateConnectionList();
        }
        new IncomingConnectionInfo(absName, count, managerKey);
    }

}