view src/main/java/christie/topology/node/IncomingConnectionInfo.java @ 195:a0be7c83fff8

add connectionList
author akahori
date Sat, 09 Mar 2019 10:19:03 +0900
parents 6eb548c188e5
children dd3c0ba6a0a6
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.Message;
import christie.topology.TopologyDataGear;


public class IncomingConnectionInfo extends CodeGear {

    @Take
    HostMessage remoteNodeInfo;

    @Take
    TopologyDataGear topoDG;

    int count;

    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しないとtopoDGが使えない.
            return;
        }

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


        getDGM(connectionName).put("_CONNECTIONMESSAGE",new Message());
        cgm.setup(new CreateConnectionList());
        getLocalDGM().put("cMember", connectionName);

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

}