view src/main/java/alice/topology/node/CloseRemoteDataSegment.java @ 602:8a9fd716c335 dispose

change topology class extends CodeSegment from MetaCodeSegment, Chat minor fix
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 03 May 2016 20:09:45 +0900
parents 3284428f525e
children
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.manager.keeparive.ListManager;

public class CloseRemoteDataSegment extends CodeSegment {

    private Receiver info = ids.create(CommandType.TAKE);
    private Receiver info1 = ids.create(CommandType.TAKE);
    private Receiver info2 = ids.create(CommandType.TAKE);
    private Receiver info3 = ids.create(CommandType.TAKE);

    public CloseRemoteDataSegment() {
        info.setKey("_CLOSEMESSEAGE");
        info1.setKey("_CLOSEREADY");
        info2.setKey("_CLOSEREADY");
        info3.setKey("_SCHEDULER");
    }

    @Override
    public void run() {
        String managerKey = info.asString();
        ListManager manager = info3.asClass(ListManager.class);
        if (info1.from.equals(managerKey)||info2.from.equals(managerKey)) {
            if (DataSegment.contains(managerKey))
                DataSegment.get(managerKey).shutdown();
            manager.deleteAll(managerKey);
        }

        ods.update(info3.key, manager);
        new ReceiveCloseMessage(CommandType.PEEK);
    }

}