view src/main/java/alice/topology/node/CloseRemoteDataSegment.java @ 547:e91a574b69de dispose

remove index
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 18 Aug 2015 16:15:17 +0900
parents 15eeb439830c
children
line wrap: on
line source

package alice.topology.node;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
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", this);
        info1.setKey("_CLOSEREADY", this);
        info2.setKey("_CLOSEREADY", this);
        info3.setKey("_SCHEDULER", this);
    }

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

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

}