Mercurial > hg > Database > Alice
annotate src/main/java/alice/datasegment/Receiver.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 | 30a74eee59c7 |
children | 0564f38e9bfe |
rev | line source |
---|---|
345 | 1 package alice.datasegment; |
2 | |
3 | |
4 import alice.codesegment.InputDataSegment; | |
5 | |
6 /** | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
7 * idsコマンド(create, setKey)の処理をする。コマンドの定義はids/LDSM内にある。 |
345 | 8 * MessagePack implementation and DataSegment Receiver |
9 * @author kazz | |
10 * | |
11 */ | |
12 public class Receiver { | |
452 | 13 private ReceiveData data; |
417 | 14 public InputDataSegment ids; |
15 public int index; | |
16 public String from; | |
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 | 19 public String key; |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
20 public boolean compressedFlag = false; |
417 | 21 |
22 public Receiver(InputDataSegment ids, CommandType type) { | |
23 this.ids = ids; | |
24 this.type = type; | |
25 ids.register(); | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
26 } |
417 | 27 |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
28 public Receiver(InputDataSegment ids, CommandType type, boolean compressedFlag) { |
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
29 this.ids = ids; |
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
30 this.type = type; |
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
31 ids.register(); |
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
32 this.compressedFlag = compressedFlag; |
417 | 33 } |
34 | |
35 public void setQuickKey(String managerKey, String key){ | |
36 setQuickKey(managerKey, key, 0); | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
37 }//? |
345 | 38 |
417 | 39 public void setQuickKey(String managerKey, String key, int index) { |
40 this.managerKey = managerKey; | |
41 this.key = key; | |
42 switch (type) { | |
43 case PEEK: | |
44 ids.quickPeek(this); | |
45 break; | |
46 case TAKE: | |
47 ids.quickTake(this); | |
48 break; | |
49 default: | |
50 break; | |
51 } | |
52 ids.setKey(); | |
53 } | |
54 | |
55 public void setKey(String managerKey, String key) { | |
56 setKey(managerKey, key, 0); | |
57 } | |
345 | 58 |
417 | 59 public void setKey(String managerKey, String key, int index) { |
60 this.managerKey = managerKey; | |
61 this.key = key; | |
62 this.index = index; | |
63 switch (type) { | |
64 case PEEK: | |
65 ids.peek(this); | |
66 break; | |
67 case TAKE: | |
68 ids.take(this); | |
69 break; | |
70 default: | |
71 break; | |
72 } | |
73 ids.setKey(); | |
74 } | |
75 | |
76 public void setKey(String key) { | |
77 setKey(key, 0); | |
78 } | |
345 | 79 |
417 | 80 public void setKey(String key, int index) { |
599
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
525
diff
changeset
|
81 this.managerKey = "local"; |
417 | 82 this.key = key; |
83 this.index = index; | |
84 switch (type) { | |
85 case PEEK: | |
86 ids.peek(this); | |
87 break; | |
88 case TAKE: | |
89 ids.take(this); | |
90 break; | |
91 default: | |
92 break; | |
93 } | |
94 ids.setKey(); | |
95 } | |
345 | 96 |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
458
diff
changeset
|
97 //以下各型でDS本体を受け取る |
452 | 98 public void setData(ReceiveData r) { |
417 | 99 data = r; |
100 } | |
345 | 101 |
417 | 102 public int asInteger() { |
103 return data.asInteger(); | |
104 } | |
105 | |
106 public String asString() { | |
107 return data.asString(); | |
108 } | |
345 | 109 |
417 | 110 public <T> T asClass(Class<T> clazz) { |
111 return data.asClass(clazz); | |
112 } | |
345 | 113 |
417 | 114 public Object getObj() { |
115 return data.getObj(); | |
116 } | |
117 | |
118 public Object getVal() { | |
119 return data.getVal(); | |
120 } | |
121 | |
458 | 122 public ReceiveData getReceiveData() { |
123 return data; | |
124 } | |
525
30a74eee59c7
working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
523
diff
changeset
|
125 |
30a74eee59c7
working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
523
diff
changeset
|
126 public boolean isCompressed(){ |
30a74eee59c7
working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
523
diff
changeset
|
127 return data.compressed(); |
30a74eee59c7
working TestRemoteAlice
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
523
diff
changeset
|
128 } |
599
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
525
diff
changeset
|
129 |
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
525
diff
changeset
|
130 public void setMeta(boolean mFlag){ |
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
525
diff
changeset
|
131 data.setMeta(mFlag); |
3284428f525e
add MetaCodeSegment & MetaDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
525
diff
changeset
|
132 } |
345 | 133 } |