ptolemy.domains.sr.lib
Class NonStrictDelay
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.Transformer
ptolemy.domains.sr.lib.NonStrictDelay
- 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 NonStrictDelay
- extends Transformer
A nonstrict actor that delays tokens by one iteration.
This actor provides a one-tick delay. On each firing, it produces
on the output port whatever value it read on the input port in the
previous tick of the clock. If the input was absent on the previous
tick of the clock, then the output will be absent. On the first tick,
the output is initialValue if it is given, and absent otherwise.
In contrast to the Pre actor, this actor is non-strict, and hence can
break causality loops. Whereas Pre provides a one-step delay of
non-absent values, this actor simply delays by one clock tick.
- Since:
- Ptolemy II 2.0
- Version:
- $Id: NonStrictDelay.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Paul Whitaker, Elaine Cheong, and Edward A. Lee
- See Also:
Pre
,
SampleDelay
,
TimedDelay
,
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 |
NonStrictDelay(CompositeEntity container,
java.lang.String name)
Construct an actor in the specified container with the specified
name. |
Method Summary |
void |
fire()
Send to the output the previous token received. |
void |
initialize()
Initialize the state of the actor. |
boolean |
isStrict()
Return false. |
boolean |
postfire()
If the input is known, then read it and record
it for the next tick. |
void |
preinitialize()
Override the base class to declare that the output
does not depend on the input in a firing. |
java.util.Set<Inequality> |
typeConstraints()
Override the method in the base class so that the type
constraint for the initialValue parameter will be set
if it contains a value. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, iterate, newReceiver, outputPortList, prefire, 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 |
initialValue
public Parameter initialValue
- Initial token value. This defaults to no value, which results
in the first output being absent. If a value is given, then
output will be constrained to have at least the type of the value
(as well as at least the type of the input).
_previousToken
protected Token _previousToken
- The token received on the previous iteration to be output on the
current iteration.
NonStrictDelay
public NonStrictDelay(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.
fire
public void fire()
throws IllegalActionException
- Send to the output the previous token received. If no token
was received on the previous tick,
then assert that the output is absent. If this is
the first tick, then produce on the output the value
provided by initialValue, or there was none, then
assert that the output is empty.
- 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 the state of the actor.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
isStrict
public boolean isStrict()
- Return false. This actor can produce some output event the input
receiver has status unknown.
- Specified by:
isStrict
in interface Executable
- Overrides:
isStrict
in class AtomicActor
- Returns:
- False.
postfire
public boolean postfire()
throws IllegalActionException
- If the input is known, then read it and record
it for the next tick. Otherwise, throw an exception.
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class AtomicActor
- Returns:
- True if execution can continue into the next iteration.
- Throws:
IllegalActionException
- If the input is not
known, or if there is no director.
preinitialize
public void preinitialize()
throws IllegalActionException
- Override the base class to declare that the output
does not depend on the input in a firing.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- If the superclass throws it.
typeConstraints
public java.util.Set<Inequality> typeConstraints()
- Override the method in the base class so that the type
constraint for the initialValue parameter will be set
if it contains a value.
- Specified by:
typeConstraints
in interface TypedActor
- Overrides:
typeConstraints
in class TypedAtomicActor
- Returns:
- A list of Inequality objects.
- See Also:
Inequality