Mercurial > hg > Members > nobuyasu > Alice > DPPAlice
changeset 30:5eb22e2f7169 draft
merge 28, 29
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 29 Jan 2013 17:17:44 +0900 |
parents | f77f0bb99f35 (diff) d45de183af46 (current diff) |
children | b815328a8d42 |
files | src/alice/test/dpp/codesegment/philosophy2/TakeLeftForkCodeSegment.java src/alice/test/dpp/codesegment/philosophy2/TakeRightForkCodeSegment.java |
diffstat | 13 files changed, 136 insertions(+), 131 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alice/test/dpp/codesegment/philosophy/EatCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/EatCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -17,8 +17,8 @@ public void run() { Philosophy phil = arg1.asClass(Philosophy.class); System.out.println(phil.getName() + " is eating."); - phil.setState(Philosophy.State.PUTRIGHTFORK); - new PutRightForkCodeSegment(phil.getName(), phil.getRightFork()); + phil.setState(Philosophy.State.PUTFORK); + new PutForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork()); ods.update("local", phil.getName(), phil); } }
--- a/src/alice/test/dpp/codesegment/philosophy/PutLeftForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -package alice.test.dpp.codesegment.philosophy; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.test.dpp.datasegment.Fork; -import alice.test.dpp.datasegment.Philosophy; - -public class PutLeftForkCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - Receiver arg2 = ids.create(CommandType.TAKE); - - public PutLeftForkCodeSegment(String pName, String fork) { - arg1.setKey(pName); - arg2.setKey(fork); - } - - @Override - public void run() { - Philosophy phil = arg1.asClass(Philosophy.class); - Fork fork = arg2.asClass(Fork.class); - System.out.println(phil.getName() +" put left fork."); - fork.onTheTable(phil.getName()); - phil.setState(Philosophy.State.THINK); - new ThinkCodeSegment(phil.getName()); - ods.update("local", phil.getName(), phil); - ods.update("local", fork.getForkName(), fork); - } -}
--- a/src/alice/test/dpp/codesegment/philosophy/PutRightForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -package alice.test.dpp.codesegment.philosophy; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.test.dpp.datasegment.Fork; -import alice.test.dpp.datasegment.Philosophy; - - -public class PutRightForkCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - Receiver arg2 = ids.create(CommandType.TAKE); - - public PutRightForkCodeSegment(String pName, String fork) { - arg1.setKey(pName); - arg2.setKey(fork); - } - - @Override - public void run() { - Philosophy phil = arg1.asClass(Philosophy.class); - Fork fork = arg2.asClass(Fork.class); - System.out.println(phil.getName() +" put right fork."); - fork.onTheTable(phil.getName()); - phil.setState(Philosophy.State.PUTLEFTFORK); - new PutLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); - ods.update("local", phil.getName(), phil); - ods.update("local", fork.getForkName(), fork); - } -}
--- a/src/alice/test/dpp/codesegment/philosophy/ScheduleCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/ScheduleCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -3,6 +3,7 @@ import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; +import alice.test.dpp.codesegment.philosophy2.TakeRightForkCodeSegment; import alice.test.dpp.datasegment.Philosophy; public class ScheduleCodeSegment extends CodeSegment {
--- a/src/alice/test/dpp/codesegment/philosophy/StartCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/StartCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -10,9 +10,9 @@ public void run() { System.out.println("run StartCodeSegment"); - new ScheduleCodeSegment("phil1"); - new ScheduleCodeSegment("phil2"); - new ScheduleCodeSegment("phil3"); + new ThinkCodeSegment("phil1"); + new ThinkCodeSegment("phil2"); + new ThinkCodeSegment("phil3"); ods.update("local", "phil1", new Philosophy("phil1","fork1","fork2")); ods.update("local", "phil2", new Philosophy("phil2","fork2","fork3"));
--- a/src/alice/test/dpp/codesegment/philosophy/TakeForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/TakeForkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -28,15 +28,14 @@ Fork rightFork = arg2.asClass(Fork.class); Fork leftFork = arg3.asClass(Fork.class); System.out.println(phil.getName() + " is trying to take the fork."); - if (leftFork.takeFork(phil.getName()) && rightFork.takeFork(phil.getName()) ) { phil.setState(Philosophy.State.EAT); + new EatCodeSegment(phil.getName()); } else { - leftFork.onTheTable(phil.getName()); - rightFork.onTheTable(phil.getName()); +// leftFork.onTheTable(phil.getName()); +// rightFork.onTheTable(phil.getName()); + new TakeForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork()); } - - new ScheduleCodeSegment(phil.getName()); ods.update("local", phil.getName(), phil); ods.update("local", leftFork.getForkName(), leftFork); ods.update("local", rightFork.getForkName(), rightFork);
--- a/src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -package alice.test.dpp.codesegment.philosophy; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.test.dpp.codesegment.fork.ForkStateTakeCodeSegment; -import alice.test.dpp.datasegment.Fork; -import alice.test.dpp.datasegment.Philosophy; - -public class TakeLeftForkCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - Receiver arg2 = ids.create(CommandType.TAKE); - - public TakeLeftForkCodeSegment(String pName, String forkName) { - arg1.setKey(pName); - arg2.setKey(forkName); - } - - @Override - public void run() { - Philosophy phil = arg1.asClass(Philosophy.class); - Fork fork = arg2.asClass(Fork.class); - System.out.println(phil.getName() + " take left fork."); - new ForkStateTakeCodeSegment(phil.getName(), phil.getLeftFork()); - ods.update("local", phil.getName(), phil); - ods.update("local", fork.getForkName(), fork); - } -}
--- a/src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -package alice.test.dpp.codesegment.philosophy; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.test.dpp.codesegment.fork.ForkStateTakeCodeSegment; -import alice.test.dpp.datasegment.Fork; -import alice.test.dpp.datasegment.Philosophy; - -public class TakeRightForkCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - Receiver arg2 = ids.create(CommandType.TAKE); - - public TakeRightForkCodeSegment(String pName, String forkName) { - arg1.setKey(pName); - arg2.setKey(forkName); - } - - @Override - public void run() { - Philosophy phil = arg1.asClass(Philosophy.class); - Fork fork = arg2.asClass(Fork.class); - System.out.println(phil.getName() + " take right fork."); - new ForkStateTakeCodeSegment(phil.getName(), fork.getForkName()); - ods.update("local", phil.getName(), phil); - ods.update("local", fork.getForkName(), fork); - } -}
--- a/src/alice/test/dpp/codesegment/philosophy/ThinkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/ThinkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -17,9 +17,8 @@ public void run() { Philosophy phil = arg1.asClass(Philosophy.class); System.out.println(phil.getName() + " is thinking"); - phil.setState(Philosophy.State.TAKERIGHTFORK); - new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork()); + phil.setState(Philosophy.State.TAKEFORK); + new TakeForkCodeSegment(phil.getName(), phil.getRightFork(), phil.getLeftFork()); ods.update("local", phil.getName(), phil); } - }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/philosophy2/PutLeftForkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -0,0 +1,31 @@ +package alice.test.dpp.codesegment.philosophy2; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.test.dpp.codesegment.philosophy.ThinkCodeSegment; +import alice.test.dpp.datasegment.Fork; +import alice.test.dpp.datasegment.Philosophy; + +public class PutLeftForkCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + Receiver arg2 = ids.create(CommandType.TAKE); + + public PutLeftForkCodeSegment(String pName, String fork) { + arg1.setKey(pName); + arg2.setKey(fork); + } + + @Override + public void run() { + Philosophy phil = arg1.asClass(Philosophy.class); + Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() +" put left fork."); + fork.onTheTable(phil.getName()); + phil.setState(Philosophy.State.THINK); + new ThinkCodeSegment(phil.getName()); + ods.update("local", phil.getName(), phil); + ods.update("local", fork.getForkName(), fork); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/philosophy2/PutRightForkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -0,0 +1,30 @@ +package alice.test.dpp.codesegment.philosophy2; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.test.dpp.datasegment.Fork; +import alice.test.dpp.datasegment.Philosophy; + + +public class PutRightForkCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + Receiver arg2 = ids.create(CommandType.TAKE); + + public PutRightForkCodeSegment(String pName, String fork) { + arg1.setKey(pName); + arg2.setKey(fork); + } + + @Override + public void run() { + Philosophy phil = arg1.asClass(Philosophy.class); + Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() +" put right fork."); + fork.onTheTable(phil.getName()); + phil.setState(Philosophy.State.PUTLEFTFORK); + new PutLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); + ods.update("local", phil.getName(), phil); + ods.update("local", fork.getForkName(), fork); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/philosophy2/TakeLeftForkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -0,0 +1,34 @@ +package alice.test.dpp.codesegment.philosophy2; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.test.dpp.codesegment.philosophy.EatCodeSegment; +import alice.test.dpp.datasegment.Fork; +import alice.test.dpp.datasegment.Philosophy; + +public class TakeLeftForkCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + Receiver arg2 = ids.create(CommandType.TAKE); + + public TakeLeftForkCodeSegment(String pName, String forkName) { + arg1.setKey(pName); + arg2.setKey(forkName); + } + + @Override + public void run() { + Philosophy phil = arg1.asClass(Philosophy.class); + Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() + " take left fork."); + if (fork.takeFork(phil.getName())) { + phil.setState(Philosophy.State.EAT); + new EatCodeSegment(phil.getName()); + } else { + new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); + } + ods.update("local", phil.getName(), phil); + ods.update("local", fork.getForkName(), fork); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/test/dpp/codesegment/philosophy2/TakeRightForkCodeSegment.java Tue Jan 29 17:17:44 2013 +0900 @@ -0,0 +1,29 @@ +package alice.test.dpp.codesegment.philosophy2; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.test.dpp.codesegment.fork.ForkStateTakeCodeSegment; +import alice.test.dpp.datasegment.Fork; +import alice.test.dpp.datasegment.Philosophy; + +public class TakeRightForkCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + Receiver arg2 = ids.create(CommandType.TAKE); + + public TakeRightForkCodeSegment(String pName, String forkName) { + arg1.setKey(pName); + arg2.setKey(forkName); + } + + @Override + public void run() { + Philosophy phil = arg1.asClass(Philosophy.class); + Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() + " take right fork."); + new ForkStateTakeCodeSegment(phil.getName(), fork.getForkName()); + ods.update("local", phil.getName(), phil); + ods.update("local", fork.getForkName(), fork); + } +}