Mercurial > hg > Members > shoshi > distributedalgorithm
view src/main/java/suikwasha/distributedalgorithm/simulator/SyncMachineBuilder.java @ 0:38a110b13db1
added SimpleDistributedAlgorithmFramework.
added NaiveAlgorithm
added ChangRobertsAlgorithm
added PertersonAlgorithm
author | suikwasha |
---|---|
date | Fri, 19 Oct 2012 00:05:41 +0900 |
parents | |
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(); } } }