annotate src/main/java/alice/topology/node/CloseRemoteDataSegment.java @ 599:3284428f525e dispose

add MetaCodeSegment & MetaDSM
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 15 Feb 2016 01:16:35 +0900
parents 28627bb3eeda
children 8a9fd716c335
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 alice.codesegment.CodeSegment;
599
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 507
diff changeset
4 import alice.codesegment.MetaCodeSegment;
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
5 import alice.datasegment.CommandType;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
6 import alice.datasegment.DataSegment;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
7 import alice.datasegment.Receiver;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
8 import alice.topology.manager.keeparive.ListManager;
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
9
599
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 507
diff changeset
10 public class CloseRemoteDataSegment extends MetaCodeSegment {
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
11
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
12 private Receiver info = ids.create(CommandType.TAKE);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
13 private Receiver info1 = ids.create(CommandType.TAKE);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
14 private Receiver info2 = ids.create(CommandType.TAKE);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
15 private Receiver info3 = ids.create(CommandType.TAKE);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
16
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
17 public CloseRemoteDataSegment() {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
18 info.setKey("_CLOSEMESSEAGE");
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
19 info1.setKey("_CLOSEREADY");
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
20 info2.setKey("_CLOSEREADY");
507
28627bb3eeda refactor
sugi
parents: 502
diff changeset
21 info3.setKey("_SCHEDULER");
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
22 }
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
23
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
24 @Override
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
25 public void run() {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
26 String managerKey = info.asString();
494
dca4b392f788 bug fix
sugi
parents: 492
diff changeset
27 ListManager manager = info3.asClass(ListManager.class);
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
28 if (info1.from.equals(managerKey)||info2.from.equals(managerKey)) {
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
29 if (DataSegment.contains(managerKey))
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
30 DataSegment.get(managerKey).shutdown();
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
31 manager.deleteAll(managerKey);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
32 }
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
33
502
7d83a188a4f7 bug fix keepAlive
sugi
parents: 494
diff changeset
34 ods.update(info3.key, manager);
492
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
35 new ReceiveCloseMessage(CommandType.PEEK);
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
36 }
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
37
24e535123df7 add PrepareToClose CodeSegment
sugi
parents:
diff changeset
38 }