ptolemy.actor.lib
Class ConfigurationSwitch
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.ConfigurationSwitch
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class ConfigurationSwitch
- extends TypedAtomicActor
Split an input stream onto two output ports depending on a
boolean selector parameter. The value of the selector parameter specifies the
output port that should be written to in this and subsequent iterations. If no selector
parameter value is provided, then the inputs are routed to the falseOutput port.
In each iteration, at most one token on each channel of the input port
is read and sent to the corresponding channel of the
trueOutput port or the falseOutput port, depending on the
most value of the selector parameter.
If the input has width greater than an output port, then
some input tokens will be discarded (those on input channels for which
there is no corresponding output channel).
Because tokens are
immutable, the same Token is sent to the output, rather than a copy.
The input port may receive Tokens of any type.
Note that the this actor may be used in Synchronous Dataflow (SDF)
models, but only under certain circumstances. Specifically, downstream
actors will be fired whether a token is sent to them or not.
This will only work if the downstream actors specifically check to
see whether input tokens are available.
- Since:
- Ptolemy II 8.0
- Version:
- $Id: ConfigurationSwitch.java 57046 2010-01-27 23:35:53Z cxh $
- Author:
- Charles Shelton
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
java.lang.Object |
clone(Workspace workspace)
Clone this actor into the specified workspace. |
void |
fire()
Read a token from each input port. |
void |
initialize()
Initialize this actor. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, 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.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
selector
public Parameter selector
- Parameter that selects one of the two input ports. The type is
BooleanToken that defaults to false.
input
public TypedIOPort input
- The input port. The type can be anything. This is a multiport,
and input tokens on all channels are routed to corresponding
channels on the output port, if there are such channels.
trueOutput
public TypedIOPort trueOutput
- Output for tokens on the true path. The type is at least the
type of the input.
falseOutput
public TypedIOPort falseOutput
- Output for tokens on the false path. The type is at least the
type of the input.
ConfigurationSwitch
public ConfigurationSwitch(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor in the specified container with the specified
name.
- Parameters:
container
- The container.name
- The name of this actor within the container.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
an actor already in the container.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Clone this actor into the specified workspace. The new actor is
not added to the directory of that workspace (you must do this
yourself if you want it there).
The result is a new actor with the same ports as the original, but
no connections and no container. A container must be set before
much can be done with this actor.
- Overrides:
clone
in class AtomicActor
- Parameters:
workspace
- The workspace for the cloned object.
- Returns:
- A new ComponentEntity.
- Throws:
java.lang.CloneNotSupportedException
- If cloned ports cannot have
as their container the cloned entity (this should not occur), or
if one of the attributes cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
fire
public void fire()
throws IllegalActionException
- Read a token from each input port. If the token from the
selector input is true, then output the token consumed from the
input port on the trueOutput port,
otherwise output the token on the falseOutput port.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
initialize
public void initialize()
throws IllegalActionException
- Initialize this actor.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class AtomicActor
- Throws:
IllegalActionException
- If the parent class throws it.