View Javadoc

    1   /*
    2    * @(#) SimEventInterface.java Feb 24, 2004
    3    *
    4    * Copyright (c) 2003 Delft University of Technology Jaffalaan 5, 2628 BX Delft,
    5    * the Netherlands All rights reserved.
    6    *
    7    * This software is proprietary information of Delft University of Technology
    8    * The code is published under the General Public License
    9    */
    10  package nl.tudelft.simulation.dsol.formalisms.devs;
    11
    12  import java.io.Serializable;
    13
    14  import nl.tudelft.simulation.dsol.SimRuntimeException;
    15
    16  /***
    17   * A SimEventInterface embodies the envolope in the scheduled method invocation
    18   * information is stored.
    19   * <p>
    20   * (c) copyright 2003 <a href="http://www.simulation.tudelft.nl">Delft
    21   * University of Technology </a>, the Netherlands. <br>
    22   * See for project information <a href="http://www.simulation.tudelft.nl">
    23   * www.simulation.tudelft.nl </a> <br>
    24   * License of use: <a href="http://www.gnu.org/copyleft/gpl.html">General Public
    25   * License (GPL) </a>, no warranty <br>
    26   *
    27   * @author <a href="http://www.simulation.tudelft.nl/people/jacobs.html">Peter
    28   *         Jacobs </a>
    29   * @version 1.11 2004-03-26
    30   * @since 1.0
    31   */
    32  public interface SimEventInterface extends Serializable, Comparable
    33  {
    34  	/*** MAX_PRIORITY is a constant reflecting the maximum priority */
    35  	short MAX_PRIORITY = 10;
    36
    37  	/*** NORMAL_PRIORITY is a constant reflecting the normal priority */
    38  	short NORMAL_PRIORITY = 5;
    39
    40  	/*** MIN_PRIORITY is a constant reflecting the minimal priority */
    41  	short MIN_PRIORITY = 1;
    42
    43  	/***
    44  	 * executes the simEvent.
    45  	 *
    46  	 * @throws SimRuntimeException on execution failure
    47  	 */
    48  	void execute() throws SimRuntimeException;
    49
    50  	/***
    51  	 * @return the scheduled execution time of a simulation event.
    52  	 */
    53  	double getAbsoluteExecutionTime();
    54
    55  	/***
    56  	 * @return The priority of a simulation event. The priorities are programmed
    57  	 *         according to the Java thread priority. Use 10 (MAX_PRIORITY), -9, .. ,
    58  	 *         5 (NORMAL_PRIORITY), 1(MIN_PRIORITY)
    59  	 */
    60  	short getPriority();
    61
    62  	/***
    63  	 * sets the id of an event. Whenever a simulation event is added or removed
    64  	 * from an eventlist, the list might want to set an ID for comparison. This
    65  	 * is the only way to ensure a comparison on equal priority and execution
    66  	 * time.
    67  	 *
    68  	 * @return retuns the id
    69  	 */
    70  	long getID();
    71
    72  	/***
    73  	 * sets the id of an event. Whenever a simulation event is added or removed
    74  	 * from an eventlist, the list might want to set an ID for comparison. This
    75  	 * is the only way to ensure a comparison on equal priority and execution
    76  	 * time.
    77  	 *
    78  	 * @param id the id
    79  	 */
    80  	void setID(long id);
    81  }