view src/main/java/alice/topology/node/IncomingConnectionInfo.java @ 601:30f2c04571c2 dispose

add chat, add Star topology to topology manager&node
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Wed, 27 Apr 2016 16:28:10 +0900
parents 3284428f525e
children 8a9fd716c335
line wrap: on
line source

package alice.topology.node;

import alice.codesegment.CodeSegment;
import alice.codesegment.MetaCodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.DataSegment;
import alice.datasegment.Receiver;
import alice.topology.HostMessage;

public class IncomingConnectionInfo extends MetaCodeSegment {

    public Receiver hostInfo = ids.create(CommandType.TAKE);
    private String absName;//nodeName
    private int count;
    private int topMNumber;

    public IncomingConnectionInfo(String absName, int count, int topMNumber) {
        this.absName = absName;
        this.count = count;
        this.topMNumber = topMNumber;
    }


    @Override
    public void run() {
        if (this.hostInfo.getVal() == null) {//hostMessageがなかったら?
            ods.put("local", "configNodeNum", count);
        } else {
            HostMessage hostInfo = this.hostInfo.asClass(HostMessage.class);
            if (DataSegment.contains(hostInfo.connectionName)) {
                // need to wait remove by DeleteConnection
                ods.put("manager"+topMNumber, absName, hostInfo);
            } else {
                //create RDSM of parent or child
                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();
            }
        }

        IncomingConnectionInfo cs = new IncomingConnectionInfo(absName, count, topMNumber);
        cs.hostInfo.setKey("manager"+topMNumber, absName);
    }

}