annotate src/main/java/alice/datasegment/Receiver.java @ 601:30f2c04571c2 dispose

add chat, add Star topology to topology manager&node
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Wed, 27 Apr 2016 16:28:10 +0900
parents 0564f38e9bfe
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.datasegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import alice.codesegment.InputDataSegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6 /**
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
7 * idsコマンド(create, setKey)の処理をする。コマンドの定義はids/LDSM内にある。
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8 * MessagePack implementation and DataSegment Receiver
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 * @author kazz
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 *
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 */
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 public class Receiver {
452
f68d103498e0 refactor (InputDataSegment holder class changed)
sugi
parents: 417
diff changeset
13 private ReceiveData data;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
14 public InputDataSegment ids;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
15 public int index;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
16 public String from;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
17 public CommandType type;
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
18 public String managerKey;//DSMを一意に特定。localかremoteか、どのremoteからか。
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
19 public String key;
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
20 public String meta = "";
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
21 public boolean compressedFlag = false;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
22
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
23 public Receiver(InputDataSegment ids, CommandType type, String meta) {
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
24 this.ids = ids;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
25 this.type = type;
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
26 this.meta = meta;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
27 ids.register();
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
28 }
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
29
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
30 public Receiver(InputDataSegment ids, CommandType type, boolean compressedFlag) {
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
31 this.ids = ids;
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
32 this.type = type;
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
33 ids.register();
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
34 this.compressedFlag = compressedFlag;
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
35 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
36
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
37 public void setQuickKey(String managerKey, String key){
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
38 setQuickKey(managerKey, key, 0);
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
39 }//?
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
41 public void setQuickKey(String managerKey, String key, int index) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
42 this.managerKey = managerKey;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
43 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
44 switch (type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
45 case PEEK:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
46 ids.quickPeek(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
47 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
48 case TAKE:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
49 ids.quickTake(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
50 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
51 default:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
52 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
53 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
54 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
55 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
56
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
57 public void setKey(String managerKey, String key) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
58 setKey(managerKey, key, 0);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
59 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
60
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
61 public void setKey(String managerKey, String key, int index) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
62 this.managerKey = managerKey;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
63 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
64 this.index = index;
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
65
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
66 if (meta == "" && managerKey == "metalocal"){
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
67 ids.peek(this);
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
68 } else{
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
69 switch (type) {
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
70 case PEEK:
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
71 ids.peek(this);
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
72 break;
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
73 case TAKE:
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
74 ids.take(this);
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
75
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
76 break;
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
77 default:
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
78 break;
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
79 }
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
80 }
600
0564f38e9bfe change allow using ids only peek from Normal Code Segment
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 599
diff changeset
81
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
82 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
83 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
84
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
85 public void setKey(String key) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
86 setKey(key, 0);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
87 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
88
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
89 public void setKey(String key, int index) {
601
30f2c04571c2 add chat, add Star topology to topology manager&node
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 600
diff changeset
90 this.managerKey="local";
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
91 this.key = key;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
92 this.index = index;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
93 switch (type) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
94 case PEEK:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
95 ids.peek(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
96 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
97 case TAKE:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
98 ids.take(this);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
99 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
100 default:
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
101 break;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
102 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
103 ids.setKey();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
104 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
105
523
145c425db88d add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 458
diff changeset
106 //以下各型でDS本体を受け取る
452
f68d103498e0 refactor (InputDataSegment holder class changed)
sugi
parents: 417
diff changeset
107 public void setData(ReceiveData r) {
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
108 data = r;
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
109 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
110
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
111 public int asInteger() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
112 return data.asInteger();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
113 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
114
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
115 public String asString() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
116 return data.asString();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
117 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
118
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
119 public <T> T asClass(Class<T> clazz) {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
120 return data.asClass(clazz);
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
121 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
122
417
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
123 public Object getObj() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
124 return data.getObj();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
125 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
126
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
127 public Object getVal() {
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
128 return data.getVal();
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
129 }
aadea6a59376 create MetaCodeSegment use reflection
sugi
parents: 345
diff changeset
130
458
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
131 public ReceiveData getReceiveData() {
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
132 return data;
bcf6f4a6fcd0 need set Meta DataSegment PUT API
sugi
parents: 452
diff changeset
133 }
525
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
134
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
135 public boolean isCompressed(){
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
136 return data.compressed();
30a74eee59c7 working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 523
diff changeset
137 }
599
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
138
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
139 public void setMeta(boolean mFlag){
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
140 data.setMeta(mFlag);
3284428f525e add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 525
diff changeset
141 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
142 }