ptolemy.actor.lib.hoc
Class LifeCycleManager
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.kernel.CompositeEntity
ptolemy.actor.CompositeActor
ptolemy.actor.TypedCompositeActor
ptolemy.actor.lib.hoc.LifeCycleManager
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- RunCompositeActor, TransmitPropertyTransformer
public class LifeCycleManager
- extends TypedCompositeActor
This is a composite actor with some services for life-cycle management.
FIXME: More.
- Since:
- Ptolemy II 4.0
- Version:
- $Id: LifeCycleManager.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee, Yang Zhao
- See Also:
ModelReference
,
SetVariable
,
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 |
LifeCycleManager()
Construct an actor in the default workspace with no
container and an empty string as its name. |
LifeCycleManager(CompositeEntity container,
java.lang.String name)
Construct a LifeCycleManager with a name and a container. |
LifeCycleManager(Workspace workspace)
Construct a LifeCycleManager in the specified workspace with
no container and an empty string as a name. |
Method Summary |
protected int |
_executeInsideModel()
Run a complete execution of the contained model. |
protected void |
_fireInsideModel()
Invoke the fire() method of its local director. |
protected void |
_readInputs()
Iterate over input ports and read any available values into
the referenced model parameters. |
protected void |
_writeOutputs()
Iterate over output ports and read any available values from
the referenced model parameters and produce them on the outputs. |
void |
executeChangeRequests()
Execute requested changes. |
boolean |
isOpaque()
Return true, since this actor is always opaque. |
void |
requestChange(ChangeRequest change)
Request that given change be executed. |
Methods inherited from class ptolemy.actor.CompositeActor |
_actorFiring, _actorFiring, _finishedAddEntity, _getPublishedPort, _setDirector, addActorFiringListener, addInitializable, addPiggyback, clone, connectionsChanged, createReceivers, createSchedule, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inferringWidths, inferWidths, initialize, inputPortList, isFireFunctional, isStrict, iterate, linkToPublishedPort, linkToPublishedPort, needsWidthInference, newInsideReceiver, newReceiver, notifyConnectivityChange, outputPortList, postfire, prefire, preinitialize, recordFiring, registerPublisherPort, removeActorFiringListener, removeInitializable, removePiggyback, setContainer, setDirector, setManager, stop, stopFire, terminate, unlinkToPublishedPort, unlinkToPublishedPort, unregisterPublisherPort, wrapup |
Methods inherited from class ptolemy.kernel.CompositeEntity |
_adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _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, statistics, uniqueName |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
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, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, deepContains, depthInHierarchy, description, description, event, 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, 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 |
LifeCycleManager
public LifeCycleManager()
- Construct an actor in the default workspace with no
container and an empty string as its name. Add the actor to the
workspace directory. You should set the local director or
executive director before attempting to send data to the actor or
to execute it. Increment the version number of the workspace.
LifeCycleManager
public LifeCycleManager(Workspace workspace)
- Construct a LifeCycleManager in the specified workspace with
no container and an empty string as a name. You can then change
the name with setName(). If the workspace argument is null, then
use the default workspace. You should set the local director or
executive director before attempting to send data to the actor
or to execute it. Add the actor to the workspace directory.
Increment the version number of the workspace.
- Parameters:
workspace
- The workspace that will list the actor.
LifeCycleManager
public LifeCycleManager(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct a LifeCycleManager with a name and a container.
The container argument must not be null, or a
NullPointerException will be thrown. This actor will use the
workspace of the container for synchronization and version counts.
If the name argument is null, then the name is set to the empty string.
Increment the version of the workspace. This actor will have no
local director initially, and its executive director will be simply
the director of the container.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the container is incompatible
with this actor.
NameDuplicationException
- If the name coincides with
an actor already in the container.
executeChangeRequests
public void executeChangeRequests()
- Execute requested changes. In this class,
do not delegate the change request to the container, but
execute the request immediately. Listeners will be notified
of success or failure.
- Specified by:
executeChangeRequests
in interface Changeable
- Overrides:
executeChangeRequests
in class NamedObj
- See Also:
NamedObj.addChangeListener(ChangeListener)
,
requestChange(ChangeRequest)
,
NamedObj.setDeferringChangeRequests(boolean)
isOpaque
public boolean isOpaque()
- Return true, since this actor is always opaque.
This method is not synchronized on the workspace,
so the caller should be.
- Overrides:
isOpaque
in class CompositeActor
- Returns:
- True if the entity is opaque.
- See Also:
CompositeEntity
requestChange
public void requestChange(ChangeRequest change)
- Request that given change be executed. In this class,
do not delegate the change request to the container, but
execute the request immediately or record it, depending on
whether setDeferringChangeRequests() has been called. If
setDeferChangeRequests() has been called with a true argument,
then simply queue the request until either setDeferChangeRequests()
is called with a false argument or executeChangeRequests() is called.
If this object is already in the middle of executing a change
request, then that execution is finished before this one is performed.
Change listeners will be notified of success (or failure) of the
request when it is executed.
- Specified by:
requestChange
in interface Changeable
- Overrides:
requestChange
in class CompositeActor
- Parameters:
change
- The requested change.- See Also:
executeChangeRequests()
,
NamedObj.setDeferringChangeRequests(boolean)
_executeInsideModel
protected int _executeInsideModel()
throws IllegalActionException
- Run a complete execution of the contained model. A complete
execution consists of invocation of super.initialize(), repeated
invocations of super.prefire(), super.fire(), and super.postfire(),
followed by super.wrapup(). The invocations of prefire(), fire(),
and postfire() are repeated until either the model indicates it
is not ready to execute (prefire() returns false), or it requests
a stop (postfire() returns false or stop() is called).
- Returns:
- One of COMPLETED, STOP_ITERATING, or NOT_READY to
indicate that either the execution completed or stop
was externally requested, stopped because
postfire() returned false, or stopped because prefire() returned
false, respectively.
- Throws:
IllegalActionException
- If there is no director, or if
the director's action methods throw it.
_fireInsideModel
protected void _fireInsideModel()
throws IllegalActionException
- Invoke the fire() method of its local director.
- Throws:
IllegalActionException
- If there is no director, or if
the director's fire() method throws it.
_readInputs
protected void _readInputs()
throws IllegalActionException
- Iterate over input ports and read any available values into
the referenced model parameters.
- Throws:
IllegalActionException
- If reading the ports or
setting the parameters causes it.
_writeOutputs
protected void _writeOutputs()
throws IllegalActionException
- Iterate over output ports and read any available values from
the referenced model parameters and produce them on the outputs.
- Throws:
IllegalActionException
- If reading the parameters or
writing to the ports causes it.