Mercurial > hg > Members > shoshi > distributedalgorithm
view src/main/java/suikwasha/distributedalgorithm/simulator/SyncMachineBuilder.java @ 2:8e1f63faa2fd default tip
added Franklin's Algorithm
author | suikwasha |
---|---|
date | Tue, 23 Oct 2012 16:49:26 +0900 |
parents | 38a110b13db1 |
children |
line wrap: on
line source
package suikwasha.distributedalgorithm.simulator; import suikwasha.distributedalgorithm.framework.Algorithm; import suikwasha.distributedalgorithm.framework.Machine; import suikwasha.distributedalgorithm.framework.MachineBuilder; import suikwasha.distributedalgorithm.framework.Port; public class SyncMachineBuilder implements MachineBuilder { private final MachineBuilder builder; private final Synchronizer synchronizer; public SyncMachineBuilder(MachineBuilder _builder) { builder = _builder; synchronizer = new Synchronizer(); } public Machine createMachine(Algorithm _algo) { Machine newMachine = builder.createMachine(_algo); synchronizer.countup(); return new SyncMachine(synchronizer,newMachine); } public Synchronizer getSynchronizer() { return synchronizer; } private static class SyncMachine extends Machine { private final Synchronizer synchronizer; private final Machine machine; public SyncMachine(Synchronizer _synchronizer,Machine _machine) { synchronizer = _synchronizer; machine = _machine; } public void addPort(Port _p) { machine.addPort(_p); } public void run() { machine.run(); synchronizer.countdown(); } } }