Mercurial > hg > Members > nobuyasu > Alice > DPPAlice
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); }