ptolemy.domains.tdl.kernel
Class TDLActor

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.kernel.CompositeEntity
                      extended by ptolemy.domains.fsm.kernel.FSMActor
                          extended by ptolemy.domains.tdl.kernel.TDLActor
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, Initializable, TypedActor, ExplicitChangeContext, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
Direct Known Subclasses:
TDLController

public class TDLActor
extends FSMActor

A TDL Actor used in the TDL domain.

Since:
Ptolemy II 8.0
Version:
$Id: TDLActor.java 57044 2010-01-27 22:41:05Z cxh $
Author:
Patricia Derler
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.domains.fsm.kernel.FSMActor
FSMActor.PortScope
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
 
Fields inherited from class ptolemy.domains.fsm.kernel.FSMActor
_currentState, _identifierToPort, _initializables, _inputTokenMap, _lastChosenTransition, _stopRequested, finalStateNames, initialStateName, stateDependentCausality
 
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
 
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
TDLActor()
          Construct an FSMActor in the default workspace with an empty string as its name.
TDLActor(CompositeEntity container, java.lang.String name)
          Create an FSMActor in the specified container with the specified name.
TDLActor(Workspace workspace)
          Construct an FSMActor in the specified workspace with an empty string as its name.
 
Method Summary
 boolean inputIsSafeToProcess(IOPort port)
          Return true if the next input on the given port is safe to process.
 ComponentRelation newRelation(java.lang.String name)
          Create a new Relation.
 boolean readInput(Node node, IOPort p, long modePeriod)
          Read input values on the given port.
 
Methods inherited from class ptolemy.domains.fsm.kernel.FSMActor
_addEntity, _addRelation, _commitLastChosenTransition, _isRefinementOutput, _readInputs, _setCurrentConnectionMap, addInitializable, attributeChanged, chooseTransition, clone, createReceivers, currentState, enabledTransitions, exportSubmodel, fire, getCausalityInterface, getContext, getDirector, getExecutiveDirector, getInitialState, getManager, getModifiedVariables, getPortScope, hasInput, hasInput, initialize, inputPortList, isFireFunctional, isOpaque, isStrict, iterate, newPort, newReceiver, outputPortList, postfire, prefire, preinitialize, readInputs, readOutputsFromRefinement, removeInitializable, reset, setLastChosenTransition, setNewIteration, setSupportMultirate, stop, stopFire, terminate, typeConstraints, wrapup
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, connect, connect, containedObjectsIterator, deepEntityList, deepGetEntities, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, setContainer, statistics, uniqueName
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_addPort, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_removePort, connectedPortList, connectedPorts, connectionsChanged, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, attributeTypeChanged, clone, 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
 
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
 

Constructor Detail

TDLActor

public TDLActor()
Construct an FSMActor in the default workspace with an empty string as its name. Add the actor to the workspace directory. Increment the version number of the workspace.


TDLActor

public TDLActor(Workspace workspace)
Construct an FSMActor in the specified workspace with an empty string as its name. You can then change the name with setName(). If the workspace argument is null, then use the default workspace. Add the actor to the workspace directory. Increment the version number of the workspace.

Parameters:
workspace - The workspace that will list the actor.

TDLActor

public TDLActor(CompositeEntity container,
                java.lang.String name)
         throws IllegalActionException,
                NameDuplicationException
Create an FSMActor in the specified container with the specified name. The name must be unique within the container or an exception is thrown. The container argument must not be null, or a NullPointerException will be thrown.

Parameters:
container - The container.
name - The name of this actor within the container.
Throws:
IllegalActionException - If the entity cannot be contained by the proposed container.
NameDuplicationException - If the name coincides with an entity already in the container.
Method Detail

newRelation

public ComponentRelation newRelation(java.lang.String name)
                              throws IllegalActionException,
                                     NameDuplicationException
Create a new Relation. This relation should not be a Transition but a TDL transition.

Overrides:
newRelation in class FSMActor
Parameters:
name - The name of the new transition.
Returns:
A transition with the given name.
Throws:
IllegalActionException - If the name argument is null.
NameDuplicationException - If name collides with that of a transition already in this actor.

readInput

public boolean readInput(Node node,
                         IOPort p,
                         long modePeriod)
                  throws IllegalActionException
Read input values on the given port.

Parameters:
node - Node containing the TDLAction for reading the input.
p - Port that should be read.
modePeriod - Current mode period.
Returns:
True if input was read.
Throws:
IllegalActionException - If

inputIsSafeToProcess

public boolean inputIsSafeToProcess(IOPort port)
                             throws IllegalActionException
Return true if the next input on the given port is safe to process. An input is safe to process if the model timestamp of the event minus the minimum delay on the port is smaller than or equal to real time. Otherwise, events with smaller timestamps could appear on this port which has to be avoided.

Parameters:
port - Port for which the next event should be tested for being safe to process.
Returns:
True if the event is safe to process.
Throws:
IllegalActionException - If the minimum delay cannot be computed.