ptolemy.domains.sdf.lib
Class SampleDelay
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.sdf.lib.SDFTransformer
ptolemy.domains.sdf.lib.SampleDelay
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, SequenceActor, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class SampleDelay
- extends SDFTransformer
This actor outputs a set of initial tokens during the initialize()
method, and subsequently passes the input tokens to the output.
It is used to break dependency cycles in directed loops of SDF models.
This actor declares an initial production parameter in its output port
that is used by the SDF scheduler to properly schedule the model, and
the initial outputs permit the computation to get started. The
default value for the initialOutputs parameter causes a
single integer token with value zero to be produced in
initialize().
- Since:
- Ptolemy II 1.0
- Version:
- $Id: SampleDelay.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Steve Neuendorffer, Edward A. Lee
- 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 |
Constructor Summary |
SampleDelay(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
void |
attributeTypeChanged(Attribute attribute)
Override the base class to allow type changes on
initialOutputs. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Read exactly one input token and send it to the output. |
void |
initialize()
Produce on the output a sequence tokens, one for each element
of the initialOutputs parameter (which is an array). |
void |
preinitialize()
Check that the initialOutputs parameter contains an
array token. |
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, 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 |
initialOutputs
public Parameter initialOutputs
- The values that will be produced in the initialize method.
This parameter must contain an ArrayToken.
It defaults to contain a single zero-valued integer token.
Changes to this parameter after initialize() has been invoked
are ignored until the next execution of the model.
_outputsArray
private ArrayToken _outputsArray
SampleDelay
public SampleDelay(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeTypeChanged
public void attributeTypeChanged(Attribute attribute)
throws IllegalActionException
- Override the base class to allow type changes on
initialOutputs.
- Overrides:
attributeTypeChanged
in class TypedAtomicActor
- Parameters:
attribute
- The attribute whose type changed.
- Throws:
IllegalActionException
- If type changes are not
allowed on the specified attribute.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Clone the actor into the specified workspace. This calls the
base class and then resets the type constraints.
- Overrides:
clone
in class AtomicActor
- Parameters:
workspace
- The workspace for the new object.
- Returns:
- A new actor.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
fire
public void fire()
throws IllegalActionException
- Read exactly one input token and send it to the output.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If the get() or send() methods
of the ports throw it.
initialize
public void initialize()
throws IllegalActionException
- Produce on the output a sequence tokens, one for each element
of the initialOutputs parameter (which is an array).
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class AtomicActor
- Throws:
IllegalActionException
- If the send() method
of the output port throws it.
preinitialize
public void preinitialize()
throws IllegalActionException
- Check that the initialOutputs parameter contains an
array token. Set the tokenInitProduction parameter of
the output port to the length of the value of initialOutputs
Note that the value and type initialOutputs are observed
only here. If the value or type change during execution
of the model, the change will not take effect until the next
execution.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- If initialOutputs parameter
is invalid, or if the base class throws it.