annotate src/alice/codesegment/InputDataSegment.java @ 3:91057e15065f

add DataSegment API and CodeSegment
author one
date Wed, 11 Jan 2012 00:17:27 +0900
parents
children 80375ae09a1f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
1 package alice.codesegment;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
2
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
3 import java.util.concurrent.ConcurrentHashMap;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
4 import java.util.concurrent.atomic.AtomicInteger;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
5
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
6 import alice.datasegment.DataSegment;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
7 import alice.datasegment.DataSegmentManager;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
8 import alice.datasegment.DataSegmentValue;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
9
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
10 public class InputDataSegment {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
11
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
12 private ConcurrentHashMap<String, DataSegmentValue> inputDataSegments = new ConcurrentHashMap<String, DataSegmentValue>();
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
13 private CodeSegment cs;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
14 private AtomicInteger count = new AtomicInteger();
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
15
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
16 public InputDataSegment(CodeSegment cs) {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
17 this.cs = cs;
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
18 }
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
19
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
20 public void peek(String managerKey, String key) {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
21 peek(managerKey, key, 0);
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
22 }
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
23
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
24 public void peek(String managerKey, String key, int index) {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
25 DataSegment.get(managerKey).peek(key, index, cs);
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
26 count.getAndIncrement();
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
27 }
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
28
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
29 public void take(String managerKey, String key) {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
30 take(managerKey, key, 0);
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
31 }
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
32
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
33 public void take(String managerKey, String key, int index) {
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
34 DataSegment.get(managerKey).take(key, index, cs);
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
35 count.getAndIncrement();
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
36 }
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
37
91057e15065f add DataSegment API and CodeSegment
one
parents:
diff changeset
38 }