Mercurial > hg > Members > tatsuki > Alice
comparison src/alice/codesegment/InputDataSegment.java @ 198:f151dea22b2c working
add flip api
author | sugi |
---|---|
date | Tue, 19 Mar 2013 01:25:09 +0900 |
parents | a85ff8dc16c1 |
children | 15b68b65f8a4 |
comparison
equal
deleted
inserted
replaced
197:2b28d3c16a58 | 198:f151dea22b2c |
---|---|
1 package alice.codesegment; | 1 package alice.codesegment; |
2 | 2 |
3 import java.util.concurrent.atomic.AtomicInteger; | 3 import java.util.concurrent.atomic.AtomicInteger; |
4 | |
5 import org.msgpack.type.Value; | |
4 | 6 |
5 import alice.datasegment.CommandType; | 7 import alice.datasegment.CommandType; |
6 import alice.datasegment.DataSegment; | 8 import alice.datasegment.DataSegment; |
7 import alice.datasegment.DataSegmentValue; | 9 import alice.datasegment.DataSegmentValue; |
8 import alice.datasegment.Receiver; | 10 import alice.datasegment.Receiver; |
16 public class InputDataSegment { | 18 public class InputDataSegment { |
17 | 19 |
18 public CodeSegment cs; | 20 public CodeSegment cs; |
19 private AtomicInteger count = new AtomicInteger(1); // 1 for no input data segments | 21 private AtomicInteger count = new AtomicInteger(1); // 1 for no input data segments |
20 private AtomicInteger keyCount = new AtomicInteger(0); // number of DataSegments | 22 private AtomicInteger keyCount = new AtomicInteger(0); // number of DataSegments |
23 | |
24 private DataSegmentValue dsv; | |
21 | 25 |
22 public InputDataSegment(CodeSegment cs) { | 26 public InputDataSegment(CodeSegment cs) { |
23 this.cs = cs; | 27 this.cs = cs; |
24 } | 28 } |
25 | 29 |
52 } | 56 } |
53 | 57 |
54 public void take(Receiver receiver, String key, int index) { | 58 public void take(Receiver receiver, String key, int index) { |
55 DataSegment.getLocal().take(receiver, key, index, cs); | 59 DataSegment.getLocal().take(receiver, key, index, cs); |
56 } | 60 } |
61 | |
62 public void flip(Receiver receiver, String key){ | |
63 | |
64 } | |
65 | |
66 public void flip(Receiver receiver, Value val, Object obj){ | |
67 //int index = DataSegment.getLocal().getDataSegmentKey(receiver.key).getIndex(); | |
68 //dsv.setValue(index, val, obj); | |
69 DataSegment.getLocal().flip(receiver.key, val, obj, dsv); | |
70 | |
71 } | |
57 | 72 |
58 public void reply(Receiver receiver, DataSegmentValue val) { | 73 public void reply(Receiver receiver, DataSegmentValue val) { |
59 receiver.index = val.index; | 74 receiver.index = val.index; |
60 receiver.val = val.val; | 75 receiver.val = val.val; |
61 receiver.from = val.from; | 76 receiver.from = val.from; |
62 receiver.obj = val.obj; | 77 receiver.obj = val.obj; |
78 setDataSegmentValue(val); | |
63 receive(); | 79 receive(); |
64 } | 80 } |
65 | 81 |
66 public void regist() { | 82 public void regist() { |
67 count.getAndIncrement(); | 83 count.getAndIncrement(); |
86 * @return Receiver of DataSegment reply | 102 * @return Receiver of DataSegment reply |
87 */ | 103 */ |
88 public Receiver create(CommandType type) { | 104 public Receiver create(CommandType type) { |
89 return new Receiver(this, type); | 105 return new Receiver(this, type); |
90 } | 106 } |
107 | |
108 private void setDataSegmentValue(DataSegmentValue dsv){ | |
109 this.dsv = dsv; | |
110 } | |
91 | 111 |
92 } | 112 } |