Mercurial > hg > Database > Alice
view src/main/java/alice/topology/node/PrepareToClose.java @ 655:1c93e82e05c6 default tip
fix timestamp
author | suruga |
---|---|
date | Sat, 17 Feb 2018 00:33:00 +0900 |
parents | dca4b392f788 |
children | 0832af83583f 767d93626b88 3284428f525e |
line wrap: on
line source
package alice.topology.node; import java.util.List; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.DataSegment; import alice.datasegment.DataSegmentManager; import alice.datasegment.Receiver; public class PrepareToClose extends CodeSegment { private Receiver info = ids.create(CommandType.PEEK); private Receiver info1 = ids.create(CommandType.TAKE); public PrepareToClose() { info.setKey("_CLOSEMESSEAGE"); info1.setKey("_CLIST"); } @SuppressWarnings("unchecked") @Override public void run() { String managerKey = info.asString(); List<String> list = info1.asClass(List.class); if (list.contains(managerKey)) { list.remove(managerKey); DataSegmentManager manager = DataSegment.get(managerKey); manager.setSendError(false); ods.put(managerKey, "_CLOSEREADY", managerKey); ods.put("_CLOSEREADY", managerKey); new CloseRemoteDataSegment(); } else { // lost node is this node's parent, so already removed new ReceiveCloseMessage(CommandType.TAKE); } ods.put(info1.key, list); } }