Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into fix/execute_benched
[simgrid.git] / examples / java / trace / pingpong / Main.java
1 /* Copyright (c) 2006-2007, 2012-2014, 2016-2017. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 package trace.pingpong;
8 import org.simgrid.msg.Msg;
9 import org.simgrid.msg.MsgException;
10 import org.simgrid.trace.Trace;
11
12 public class Main  {
13   public static final String PM_STATE = "PM_STATE";
14
15   private Main() {
16     throw new IllegalAccessError("Utility class");
17   }
18
19   public static void main(String[] args) throws MsgException {
20     Msg.init(args);
21     if(args.length < 1) {
22       Msg.info("Usage   : Main platform_file");
23       Msg.info("example : Main ../platforms/platform.xml");
24       System.exit(1);
25     }
26
27     /* construct the platform and deploy the application */
28     Msg.createEnvironment(args[0]);
29     new Sender("Jacquelin", "Sender", new String[] {"Boivin", "Tremblay"}).start();
30     new Receiver ("Boivin", "Receiver", null).start();
31     new Receiver ("Tremblay", "Receiver", null).start();
32
33     /* Initialize some state for the hosts */
34     Trace.hostStateDeclare (PM_STATE);
35     Trace.hostStateDeclareValue (PM_STATE, "waitingPing", "0 0 1");
36     Trace.hostStateDeclareValue (PM_STATE, "sendingPong", "0 1 0");
37     Trace.hostStateDeclareValue (PM_STATE, "sendingPing", "0 1 1");
38     Trace.hostStateDeclareValue (PM_STATE, "waitingPong", "1 0 0");
39
40     /*  execute the simulation. */
41     Msg.run();
42   }
43 }