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 }