diff src/alice/codesegment/InputDataSegment.java @ 18:72dd27d952b0

change InputDataSegment API
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Sun, 15 Jan 2012 16:03:11 +0900
parents 22afbb2919f1
children e7867328a2fb
line wrap: on
line diff
--- a/src/alice/codesegment/InputDataSegment.java	Sun Jan 15 15:18:01 2012 +0900
+++ b/src/alice/codesegment/InputDataSegment.java	Sun Jan 15 16:03:11 2012 +0900
@@ -1,14 +1,13 @@
 package alice.codesegment;
 
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import alice.datasegment.DataSegment;
+import alice.datasegment.DataSegmentReceiver;
 import alice.datasegment.DataSegmentValue;
 
 public class InputDataSegment {
 	
-	private ConcurrentHashMap<String, DataSegmentValue> inputDataSegments = new ConcurrentHashMap<String, DataSegmentValue>();
 	private CodeSegment cs;
 	private AtomicInteger count = new AtomicInteger(1); // for execute()
 	
@@ -16,26 +15,27 @@
 		this.cs = cs;
 	}
 	
-	public void peek(String argKey, String managerKey, String key) {
-		peek(argKey, managerKey, key, 0);
+	public void peek(DataSegmentReceiver receiver, String managerKey, String key) {
+		peek(receiver, managerKey, key, 0);
 	}
 	
-	public void peek(String argKey, String managerKey, String key, int index) {
-		DataSegment.get(managerKey).peek(argKey, key, index, cs);
+	public void peek(DataSegmentReceiver receiver, String managerKey, String key, int index) {
+		DataSegment.get(managerKey).peek(receiver, key, index, cs);
 		count.getAndIncrement();
 	}
 
-	public void take(String argKey,String managerKey, String key) {
-		take(argKey, managerKey, key, 0);
+	public void take(DataSegmentReceiver receiver, String managerKey, String key) {
+		take(receiver, managerKey, key, 0);
 	}
 	
-	public void take(String argKey, String managerKey, String key, int index) {
-		DataSegment.get(managerKey).take(argKey, key, index, cs);
+	public void take(DataSegmentReceiver receiver, String managerKey, String key, int index) {
+		DataSegment.get(managerKey).take(receiver, key, index, cs);
 		count.getAndIncrement();
 	}
 
-	public void reply(String key, DataSegmentValue val) {
-		inputDataSegments.put(key, val);
+	public void reply(DataSegmentReceiver receiver, DataSegmentValue val) {
+		receiver.index = val.index;
+		receiver.val = val.val;
 		execute();
 	}
 	
@@ -48,8 +48,5 @@
 			}
 		}
 	}
-	
-	public DataSegmentValue get(String argKey) {
-		return inputDataSegments.get(argKey);
-	}
+
 }