Mercurial > hg > Members > shoshi > distributedalgorithm
comparison src/main/java/suikwasha/distributedalgorithm/simulator/Simulator.java @ 0:38a110b13db1
added SimpleDistributedAlgorithmFramework.
added NaiveAlgorithm
added ChangRobertsAlgorithm
added PertersonAlgorithm
author | suikwasha |
---|---|
date | Fri, 19 Oct 2012 00:05:41 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:38a110b13db1 |
---|---|
1 package suikwasha.distributedalgorithm.simulator; | |
2 | |
3 import suikwasha.distributedalgorithm.framework.Algorithm; | |
4 import suikwasha.distributedalgorithm.framework.LinkBuilder; | |
5 import suikwasha.distributedalgorithm.framework.Machine; | |
6 import suikwasha.distributedalgorithm.framework.MachineBuilder; | |
7 import suikwasha.distributedalgorithm.framework.Topology; | |
8 import suikwasha.distributedalgorithm.framework.TopologyBuilder; | |
9 | |
10 public class Simulator | |
11 { | |
12 private final Iterable<Algorithm> algos; | |
13 private final LinkBuilder linkBuilder; | |
14 private final MachineBuilder machineBuilder; | |
15 private final TopologyBuilder topologyBuilder; | |
16 | |
17 public Simulator(Iterable<Algorithm> _algos,LinkBuilder _linkBuilder | |
18 ,MachineBuilder _machineBuilder,TopologyBuilder _topologyBuilder) | |
19 { | |
20 algos = _algos; | |
21 linkBuilder = _linkBuilder; | |
22 machineBuilder = _machineBuilder; | |
23 topologyBuilder = _topologyBuilder; | |
24 } | |
25 | |
26 public Summary startSimulation() throws InterruptedException | |
27 { | |
28 Summary summary = new Summary(); | |
29 LoggingMessageLinkBuilder logLinkBuilder = new LoggingMessageLinkBuilder(summary,linkBuilder); | |
30 SyncMachineBuilder syncMachineBuilder = new SyncMachineBuilder(machineBuilder); | |
31 | |
32 Topology topologies = topologyBuilder.build(algos,syncMachineBuilder,logLinkBuilder); | |
33 | |
34 for(Machine machine : topologies.getMachines()){ | |
35 machine.start(); | |
36 } | |
37 | |
38 Synchronizer sync = syncMachineBuilder.getSynchronizer(); | |
39 sync.await(); | |
40 | |
41 return summary; | |
42 } | |
43 } |