annotate src/main/java/alice/topology/node/PrepareToClose.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
1 package alice.topology.node;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
2
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
3 import java.util.List;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
4
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
5 import alice.codesegment.CodeSegment;
599
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 494
diff changeset
6 import alice.codesegment.MetaCodeSegment;
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
7 import alice.datasegment.CommandType;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
8 import alice.datasegment.DataSegment;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
9 import alice.datasegment.DataSegmentManager;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
10 import alice.datasegment.Receiver;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
11
602
8a9fd716c335 change topology class extends CodeSegment from MetaCodeSegment, Chat minor fix
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
12 public class PrepareToClose extends CodeSegment {
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
13
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
14 private Receiver info = ids.create(CommandType.PEEK);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
15 private Receiver info1 = ids.create(CommandType.TAKE);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
16
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
17 public PrepareToClose() {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
18 info.setKey("_CLOSEMESSEAGE");
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
19 info1.setKey("_CLIST");
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
20 }
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
21
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
22 @SuppressWarnings("unchecked")
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
23 @Override
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
24 public void run() {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
25 String managerKey = info.asString();
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
26 List<String> list = info1.asClass(List.class);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
27 if (list.contains(managerKey)) {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
28 list.remove(managerKey);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
29 DataSegmentManager manager = DataSegment.get(managerKey);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
30 manager.setSendError(false);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
31
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
32 ods.put(managerKey, "_CLOSEREADY", managerKey);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
33 ods.put("_CLOSEREADY", managerKey);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
34
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
35 new CloseRemoteDataSegment();
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
36 } else {
494
dca4b392f788 bug fix
sugi
parents: 492
diff changeset
37 // lost node is this node's parent, so already removed
dca4b392f788 bug fix
sugi
parents: 492
diff changeset
38 new ReceiveCloseMessage(CommandType.TAKE);
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
39 }
494
dca4b392f788 bug fix
sugi
parents: 492
diff changeset
40 ods.put(info1.key, list);
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
41
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
42 }
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
43
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
44 }