annotate src/main/java/suikwasha/distributedalgorithm/simulator/LoggingMessageLinkBuilder.java @ 2:8e1f63faa2fd default tip

added Franklin's Algorithm
author suikwasha
date Tue, 23 Oct 2012 16:49:26 +0900
parents 38a110b13db1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
1 package suikwasha.distributedalgorithm.simulator;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
2
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
3 import suikwasha.distributedalgorithm.framework.Link;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
4 import suikwasha.distributedalgorithm.framework.LinkBuilder;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
5 import suikwasha.distributedalgorithm.framework.Message;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
6 import suikwasha.distributedalgorithm.framework.Port;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
7
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
8 public class LoggingMessageLinkBuilder implements LinkBuilder
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
9 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
10 private final LinkBuilder builder;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
11 private final Summary summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
12
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
13 public LoggingMessageLinkBuilder(Summary _summary,LinkBuilder _builder)
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
14 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
15 summary = _summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
16 builder = _builder;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
17 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
18
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
19 public Link build()
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
20 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
21 return new LoggingLink(summary,builder.build());
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
22 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
23
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
24 public static class LoggingLink implements Link
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
25 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
26 private Link link;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
27 private Summary summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
28
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
29 public LoggingLink(Summary _summary,Link _link)
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
30 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
31 summary = _summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
32 link = _link;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
33 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
34
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
35 public Port getPort1()
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
36 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
37 return new LoggingPort(summary,link.getPort1());
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
38 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
39
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
40 public Port getPort2()
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
41 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
42 return new LoggingPort(summary,link.getPort2());
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
43 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
44 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
45
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
46 public static class LoggingPort implements Port
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
47 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
48 private Summary summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
49 private Port port;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
50
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
51 public LoggingPort(Summary _summary,Port _port)
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
52 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
53 summary = _summary;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
54 port = _port;
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
55 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
56
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
57 public void send(Message _mes)
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
58 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
59 long bits = _mes.getMessage().limit();
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
60 summary.addMessageBitCount(bits);
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
61 summary.incrementMessageCount();
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
62 summary.trySetMessageChain(_mes.getMessageChain());
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
63
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
64 port.send(_mes);
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
65 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
66
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
67 public Message blockingReceive() throws InterruptedException
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
68 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
69 return port.blockingReceive();
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
70 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
71
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
72 public Message tryReceive()
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
73 {
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
74 return port.tryReceive();
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
75 }
2
8e1f63faa2fd added Franklin's Algorithm
suikwasha
parents: 0
diff changeset
76
8e1f63faa2fd added Franklin's Algorithm
suikwasha
parents: 0
diff changeset
77 public boolean isReady()
8e1f63faa2fd added Franklin's Algorithm
suikwasha
parents: 0
diff changeset
78 {
8e1f63faa2fd added Franklin's Algorithm
suikwasha
parents: 0
diff changeset
79 return port.isReady();
8e1f63faa2fd added Franklin's Algorithm
suikwasha
parents: 0
diff changeset
80 }
0
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
81 }
38a110b13db1 added SimpleDistributedAlgorithmFramework.
suikwasha
parents:
diff changeset
82 }