diff src/alice/test/dpp/codesegment/PutForkCodeSegment.java @ 14:33727db069c2

add ScheduleCodeSegment. modified CodeSegment
author one
date Wed, 28 Nov 2012 17:41:42 +0900
parents bfaaebb50a2e
children 92cde6277018
line wrap: on
line diff
--- a/src/alice/test/dpp/codesegment/PutForkCodeSegment.java	Wed Nov 28 16:21:34 2012 +0900
+++ b/src/alice/test/dpp/codesegment/PutForkCodeSegment.java	Wed Nov 28 17:41:42 2012 +0900
@@ -8,24 +8,27 @@
 
 public class PutForkCodeSegment extends CodeSegment {
 	
-	Philosophy phil;
 	Receiver arg1 = ids.create(CommandType.TAKE);
 	Receiver arg2 = ids.create(CommandType.TAKE);
+	Receiver arg3 = ids.create(CommandType.TAKE);
 	
-	public PutForkCodeSegment(Philosophy p) {
-		phil = p;
-		arg1.setKey(phil.getLeftFork());
-		arg2.setKey(phil.getRightFork());				
+	public PutForkCodeSegment(String pName, String rFork, String lFork) {
+		arg1.setKey(pName);
+		arg2.setKey(lFork);
+		arg3.setKey(rFork);
 	}
 	
 	@Override
 	public void run() {
+		Philosophy phil = arg1.asClass(Philosophy.class);
+		Fork leftFork = arg2.asClass(Fork.class);
+		Fork rightFork = arg3.asClass(Fork.class);
 		System.out.println(phil.getName() +" put fork.");
-		Fork leftFork = arg1.asClass(Fork.class);
-		Fork rightFork = arg2.asClass(Fork.class);
-		leftFork.onTheTable(phil);
-		rightFork.onTheTable(phil);
-		new ThinkCodeSegment(phil);		
+		leftFork.onTheTable(phil.getName());
+		rightFork.onTheTable(phil.getName());
+		phil.setState(Philosophy.State.THINK);
+		new ScheduleCodeSegment(phil.getName());
+		ods.update("local", phil.getName(), phil);
 		ods.update("local", leftFork.getForkName(), leftFork);
 		ods.update("local", rightFork.getForkName(), rightFork);
 	}