Class Dataflow

  • All Implemented Interfaces:
    Executable, Initializable, DDI
    Direct Known Subclasses:
    DataflowWithRates

    public class Dataflow
    extends AbstractDDI
    Since:
    Ptolemy II 4.0
    Version:
    $Id$
    Author:
    Jörn W. Janneck, Steve Neuendorffer
    Pt.AcceptedRating:
    Red (cxh)
    Pt.ProposedRating:
    Red (cxh)
    • Field Detail

      • _actor

        protected caltrop.interpreter.ast.Actor _actor
      • _actions

        protected caltrop.interpreter.ast.Action[] _actions
      • _context

        protected caltrop.interpreter.Context _context
      • _env

        protected caltrop.interpreter.environment.Environment _env
      • _currentStateSet

        protected java.util.Set _currentStateSet
      • _currentTransitions

        protected caltrop.interpreter.ast.Transition[] _currentTransitions
      • _inputPorts

        protected java.util.Map _inputPorts
      • _outputPorts

        protected java.util.Map _outputPorts
      • _lastFiredAction

        protected caltrop.interpreter.ast.Action _lastFiredAction
    • Constructor Detail

      • Dataflow

        public Dataflow​(TypedAtomicActor ptActor,
                        caltrop.interpreter.ast.Actor actor,
                        caltrop.interpreter.Context context,
                        caltrop.interpreter.environment.Environment env)
    • Method Detail

      • isLegalActor

        public boolean isLegalActor()
        Description copied from interface: DDI
        Perform static checking on the actor, ensuring its validity in a given domain.
        Returns:
        True, if the actor is legal.
      • setupActor

        public void setupActor()
        Description copied from interface: DDI
        Perform any domain dependent setup. This can include hanging various attributes off of the actor, for example, the rate of the input and output ports.
      • getName

        public java.lang.String getName()
        Description copied from interface: DDI
        Get the name of the domain that this DDI implements.
        Returns:
        The name of the domain that this DDI implements.
      • fire

        public void fire()
                  throws IllegalActionException
        Executes the selected action on the first fire() call. On successive calls, it rolls back previous state changes, selects a new action and executes it.

        Note: Is this correct behavior? What is the contract between the result of prefire() and successive calls to fire()?

        Throws:
        IllegalActionException - If an error occurs during the interpretation of the action.
      • _selectAction

        protected int _selectAction()
        This method picks an action for which the actor interpreter evaluates the guard to true. Note that this does not necessarily mean that all preconditions for firing are satisfied---the amount of "prechecking" depends on the model of computation ddi. (FIXMELATER)
        Returns:
        The action number that was selected, a value <0 if no action was selected.
      • _selectInitializer

        protected int _selectInitializer()
      • prefire

        public boolean prefire()
                        throws IllegalActionException
        Select a fireable action among the actions of the actor, if possible.
        Returns:
        True, if an action could be selected.
        Throws:
        IllegalActionException - If an error occurred during the action selection.