|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.ddf.lib.DDFSelect
public class DDFSelect
A type polymorphic select, which routes specified input channels to the output, used in the DDF domain. In the first iteration, an input token at the control port is read and its value is recorded. In the second iteration, an input token is read from the input port channel specified by the most recently seen token at the control port and sent to the output. It alternates between these two kinds of iterations until stopped. The control port must receive IntTokens. The input port may receive tokens of any type. Because tokens are immutable, the same token is sent to the output, rather than a copy. Note that as for any multiport, the channel number starts from 0 and increments by 1 for each additional channel in the order the channel is created (e.g., when a connection is drawn in Vergil).
Note this actor sends an output token every two iterations. Contrast this with Select which sends an output token every iteration.
Yellow (cxh) |
Yellow (zgang) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
private int |
_control
The most recently read control token. |
private boolean |
_isControlRead
The boolean to determine whether to read from the control port or from the input port. |
private static IntToken |
_one
A final static IntToken with value 1. |
private ArrayToken[] |
_rateArray
An array of ArrayTokens to be used to set tokenConsumptionRate of the input port. |
private ArrayToken |
_rateZero
An ArrayToken to be used to set tokenConsumptionRate of the input port. |
private static IntToken |
_zero
A final static IntToken with value 0. |
TypedIOPort |
control
The input port for control tokens, which specifies the input channels to read the tokens from. |
Parameter |
control_tokenConsumptionRate
This parameter provides token consumption rate for control. |
TypedIOPort |
input
The input port. |
Parameter |
input_tokenConsumptionRate
This parameter provides token consumption rate for input. |
TypedIOPort |
output
The output port. |
Fields inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Fields inherited from interface ptolemy.actor.Executable |
---|
COMPLETED, NOT_READY, STOP_ITERATING |
Constructor Summary | |
---|---|
DDFSelect(CompositeEntity container,
java.lang.String name)
Construct an actor in the specified container with the specified name. |
Method Summary | |
---|---|
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
connectionsChanged(Port port)
Pre-calculate the rates to be set in the rate parameter of the input port. |
void |
fire()
Fire the actor once. |
void |
initialize()
Initialize this actor and rate parameters so that it will read from the control port in the first iteration. |
boolean |
postfire()
Update rate parameters for the next iteration. |
boolean |
prefire()
Return false if the port or channel it needs to read from in the following firing does not have a token. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
Methods inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
---|
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.InstantiableNamedObj |
---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface ptolemy.actor.Actor |
---|
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
Methods inherited from interface ptolemy.actor.Executable |
---|
isFireFunctional, isStrict, iterate, stop, stopFire, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, preinitialize, removeInitializable, wrapup |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort input
public TypedIOPort control
public TypedIOPort output
public Parameter input_tokenConsumptionRate
public Parameter control_tokenConsumptionRate
private int _control
private boolean _isControlRead
private static final IntToken _one
private static final IntToken _zero
private ArrayToken[] _rateArray
private ArrayToken _rateZero
Constructor Detail |
---|
public DDFSelect(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container.name
- The name of this actor within the container.
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
an actor already in the container.Method Detail |
---|
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class AtomicActor
workspace
- The workspace for the new object.
java.lang.CloneNotSupportedException
- If a derived class has
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public void connectionsChanged(Port port)
connectionsChanged
in class AtomicActor
port
- The port that has connection changes.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If there is no director, and
hence no receivers have been created, or the value of the received
control token is out of range.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If setToken() throws it.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor
IllegalActionException
- If setToken() throws it.public boolean prefire() throws IllegalActionException
prefire
in interface Executable
prefire
in class AtomicActor
IllegalActionException
- If the receivers do not support
the query, or if there is no director, and hence no receivers.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |