View Javadoc
1   package org.sim0mq.demo.mm1;
2   
3   import java.util.concurrent.atomic.AtomicLong;
4   
5   import org.djutils.serialization.SerializationException;
6   import org.sim0mq.Sim0MQException;
7   
8   /**
9    * Example implementation of a FederationManager to start the MM1Queue41Application DSOL model.
10   * <p>
11   * Copyright (c) 2016-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
12   * BSD-style license. See <a href="http://sim0mq.org/docs/current/license.html">Sim0MQ License</a>.
13   * </p>
14   * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $,
15   * initial version April 10, 2017 <br>
16   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
17   */
18  public final class MM1FederationManager
19  {
20      /** */
21      private MM1FederationManager()
22      {
23          // Utility class
24      }
25  
26      /**
27       * @param args parameters for main
28       * @throws Sim0MQException on error
29       * @throws SerializationException on serialization problem
30       */
31      public static void main(final String[] args) throws Sim0MQException, SerializationException
32      {
33          if (args.length < 5)
34          {
35              System.err.println("Use as FederationManager federationName federationManagerPortNumber "
36                      + "federateStarterIPorName federateStarterPortNumber modelFolder");
37              System.exit(-1);
38          }
39          String federationName = args[0];
40  
41          String fmsPort = args[1];
42          int fmPort = 0;
43          try
44          {
45              fmPort = Integer.parseInt(fmsPort);
46          }
47          catch (NumberFormatException nfe)
48          {
49              System.err.println("Use as FederationManager fedName fmPort fsIP fsPort modelFolder, where fmPort is a number");
50              System.exit(-1);
51          }
52          if (fmPort == 0 || fmPort > 65535)
53          {
54              System.err.println("fmPort should be between 1 and 65535");
55              System.exit(-1);
56          }
57  
58          String fsServerNameOrIP = args[2];
59  
60          String fsPortString = args[3];
61          int fsPort = 0;
62          try
63          {
64              fsPort = Integer.parseInt(fsPortString);
65          }
66          catch (NumberFormatException nfe)
67          {
68              System.err.println("Use as FederationManager fedName fmPort fsIP fsPort modelFolder, where fmPort is a number");
69              System.exit(-1);
70          }
71          if (fsPort == 0 || fsPort > 65535)
72          {
73              System.err.println("fsPort should be between 1 and 65535");
74              System.exit(-1);
75          }
76  
77          String mm1ModelFolder = args[4];
78  
79          AtomicLong messageCount = new AtomicLong(0L);
80          new MM1FederationManager20.StateMachine(messageCount, federationName, fsServerNameOrIP, fsPort, mm1ModelFolder, 1);
81      }
82  
83  }