3
|
1 package alice.codesegment;
|
|
2
|
|
3 import java.util.concurrent.ConcurrentHashMap;
|
|
4 import java.util.concurrent.atomic.AtomicInteger;
|
|
5
|
|
6 import alice.datasegment.DataSegment;
|
|
7 import alice.datasegment.DataSegmentManager;
|
|
8 import alice.datasegment.DataSegmentValue;
|
|
9
|
|
10 public class InputDataSegment {
|
|
11
|
|
12 private ConcurrentHashMap<String, DataSegmentValue> inputDataSegments = new ConcurrentHashMap<String, DataSegmentValue>();
|
|
13 private CodeSegment cs;
|
|
14 private AtomicInteger count = new AtomicInteger();
|
|
15
|
|
16 public InputDataSegment(CodeSegment cs) {
|
|
17 this.cs = cs;
|
|
18 }
|
|
19
|
|
20 public void peek(String managerKey, String key) {
|
|
21 peek(managerKey, key, 0);
|
|
22 }
|
|
23
|
|
24 public void peek(String managerKey, String key, int index) {
|
|
25 DataSegment.get(managerKey).peek(key, index, cs);
|
|
26 count.getAndIncrement();
|
|
27 }
|
|
28
|
|
29 public void take(String managerKey, String key) {
|
|
30 take(managerKey, key, 0);
|
|
31 }
|
|
32
|
|
33 public void take(String managerKey, String key, int index) {
|
|
34 DataSegment.get(managerKey).take(key, index, cs);
|
|
35 count.getAndIncrement();
|
|
36 }
|
|
37
|
|
38 }
|