4 package example.chord;
\r
6 import org.simgrid.msg.Host;
\r
8 import peersim.core.*;
\r
9 import peersim.config.Configuration;
\r
10 import peersim.edsim.EDSimulator;
\r
11 import psgsim.PSGSimulator;
\r
17 public class TrafficGenerator implements Control {
\r
19 private static final String PAR_PROT = "protocol";
\r
21 private final int pid;
\r
26 public TrafficGenerator(String prefix) {
\r
27 pid = Configuration.getPid(prefix + "." + PAR_PROT);
\r
33 * @see peersim.core.Control#execute()
\r
35 public boolean execute() {
\r
36 int size = Network.size();
\r
37 Node sender, target;
\r
41 sender = Network.get(CommonState.r.nextInt(size));
\r
42 target = Network.get(CommonState.r.nextInt(size));
\r
43 } while (sender == null || sender.isUp() == false || target == null
\r
44 || target.isUp() == false);
\r
45 LookUpMessage message = new LookUpMessage(sender,
\r
46 ((ChordProtocol) target.getProtocol(pid)).chordId);
\r
47 System.out.println("TrafficGenerator at time "+CommonState.getTime()+" Node:"
\r
48 + message.getSender().getID() +" target "+target.getID() + " pid:"
\r
50 EDSimulator.add(10, message, sender, pid);
\r