public class Dataflow extends AbstractDDI
Modifier and Type | Field and Description |
---|---|
protected caltrop.interpreter.ast.Action[] |
_actions |
protected caltrop.interpreter.ast.Actor |
_actor |
protected ptolemy.caltrop.ddi.util.DataflowActorInterpreter |
_actorInterpreter |
protected caltrop.interpreter.Context |
_context |
protected java.util.Set |
_currentStateSet |
protected caltrop.interpreter.ast.Transition[] |
_currentTransitions |
protected caltrop.interpreter.environment.Environment |
_env |
protected java.util.Map |
_inputPorts |
protected caltrop.interpreter.ast.Action |
_lastFiredAction |
protected java.util.Map |
_outputPorts |
protected TypedAtomicActor |
_ptActor |
COMPLETED, NOT_READY, STOP_ITERATING
Constructor and Description |
---|
Dataflow(TypedAtomicActor ptActor,
caltrop.interpreter.ast.Actor actor,
caltrop.interpreter.Context context,
caltrop.interpreter.environment.Environment env) |
Modifier and Type | Method and Description |
---|---|
protected int |
_selectAction()
This method picks an action for which the actor interpreter
evaluates the guard to true.
|
protected int |
_selectInitializer() |
void |
fire()
Executes the selected action on the first
fire() call. |
java.lang.String |
getName()
Get the name of the domain that this DDI implements.
|
void |
initialize()
In SDF, selecting which initializer to fire is already done in
preinitialize().
|
boolean |
isLegalActor()
Perform static checking on the actor, ensuring its validity in
a given domain.
|
boolean |
postfire()
Postfire this actor.
|
boolean |
prefire()
Select a fireable action among the actions of the actor, if possible.
|
void |
preinitialize()
Preinitialize this actor.
|
void |
setupActor()
Perform any domain dependent setup.
|
addInitializable, isFireFunctional, isStrict, iterate, removeInitializable, stop, stopFire, terminate, wrapup
protected TypedAtomicActor _ptActor
protected caltrop.interpreter.ast.Actor _actor
protected caltrop.interpreter.ast.Action[] _actions
protected caltrop.interpreter.Context _context
protected caltrop.interpreter.environment.Environment _env
protected java.util.Set _currentStateSet
protected caltrop.interpreter.ast.Transition[] _currentTransitions
protected ptolemy.caltrop.ddi.util.DataflowActorInterpreter _actorInterpreter
protected java.util.Map _inputPorts
protected java.util.Map _outputPorts
protected caltrop.interpreter.ast.Action _lastFiredAction
public Dataflow(TypedAtomicActor ptActor, caltrop.interpreter.ast.Actor actor, caltrop.interpreter.Context context, caltrop.interpreter.environment.Environment env)
public boolean isLegalActor()
DDI
public void setupActor()
DDI
public java.lang.String getName()
DDI
public void fire() throws IllegalActionException
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()?
IllegalActionException
- If an error occurs during the
interpretation of the action.public void preinitialize() throws IllegalActionException
IllegalActionException
- If initializing is not permitted.protected int _selectAction()
protected int _selectInitializer()
public void initialize() throws IllegalActionException
IllegalActionException
public boolean postfire() throws IllegalActionException
IllegalActionException
- If postfiring is not permitted.public boolean prefire() throws IllegalActionException
IllegalActionException
- If an error occurred during the
action selection.