Mercurial > hg > Database > Alice
annotate src/alice/codesegment/InputDataSegment.java @ 39:3155337e754e
add logger
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 27 Jan 2012 16:57:26 +0900 |
parents | 20c67f673224 |
children | 73158dc54c59 |
rev | line source |
---|---|
3 | 1 package alice.codesegment; |
2 | |
3 import java.util.concurrent.atomic.AtomicInteger; | |
4 | |
32
2bfb796b0fa1
change method to create DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
28
diff
changeset
|
5 import alice.datasegment.CommandType; |
3 | 6 import alice.datasegment.DataSegment; |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
7 import alice.datasegment.Receiver; |
3 | 8 import alice.datasegment.DataSegmentValue; |
9 | |
10 public class InputDataSegment { | |
11 | |
12 private CodeSegment cs; | |
19 | 13 private AtomicInteger count = new AtomicInteger(1); // for no input data segments |
14 private AtomicInteger keyCount = new AtomicInteger(0); | |
3 | 15 |
16 public InputDataSegment(CodeSegment cs) { | |
17 this.cs = cs; | |
18 } | |
19 | |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
20 public void peek(Receiver receiver, String managerKey, String key) { |
18 | 21 peek(receiver, managerKey, key, 0); |
3 | 22 } |
23 | |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
24 public void peek(Receiver receiver, String managerKey, String key, int index) { |
18 | 25 DataSegment.get(managerKey).peek(receiver, key, index, cs); |
3 | 26 } |
27 | |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
28 public void take(Receiver receiver, String managerKey, String key) { |
18 | 29 take(receiver, managerKey, key, 0); |
3 | 30 } |
31 | |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
32 public void take(Receiver receiver, String managerKey, String key, int index) { |
18 | 33 DataSegment.get(managerKey).take(receiver, key, index, cs); |
3 | 34 } |
7 | 35 |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
36 public void reply(Receiver receiver, DataSegmentValue val) { |
18 | 37 receiver.index = val.index; |
38 receiver.val = val.val; | |
28
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
39 receiver.from = val.from; |
19 | 40 receive(); |
41 } | |
42 | |
43 public void regist() { | |
44 count.getAndIncrement(); | |
45 keyCount.getAndIncrement(); | |
9 | 46 } |
47 | |
19 | 48 public void setKey() { |
49 if (keyCount.decrementAndGet() == 0) { | |
50 receive(); | |
51 } | |
52 } | |
53 | |
54 public void receive() { | |
8 | 55 if (count.decrementAndGet() == 0) { |
56 try { | |
57 CodeSegmentManager.get().readyQueue.put(cs); | |
58 } catch (InterruptedException e) { | |
59 e.printStackTrace(); | |
60 } | |
61 } | |
62 } | |
32
2bfb796b0fa1
change method to create DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
28
diff
changeset
|
63 |
33
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
64 public Receiver create(CommandType type) { |
20c67f673224
change name of DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
65 return new Receiver(this, type); |
32
2bfb796b0fa1
change method to create DataSegmentReceiver
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
28
diff
changeset
|
66 } |
18 | 67 |
3 | 68 } |