Package ptolemy.domains.sdf.optimize
Class SharedBufferTransformer
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity<T>
-
- ptolemy.actor.AtomicActor<TypedIOPort>
-
- ptolemy.actor.TypedAtomicActor
-
- ptolemy.actor.lib.Transformer
-
- ptolemy.domains.sdf.optimize.SharedBufferTransformer
-
- All Implemented Interfaces:
java.lang.Cloneable
,Actor
,Executable
,FiringsRecordable
,Initializable
,TypedActor
,BufferingProfile
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
- Direct Known Subclasses:
DummyTransformer
public abstract class SharedBufferTransformer extends Transformer implements BufferingProfile
An abstract ancestor class to be used for filters using references to shared data frames. It implements a default version of the BufferingProfile interface.See
OptimizingSDFDirector
andBufferingProfile
for more information.- Since:
- Ptolemy II 10.0
- Version:
- $Id$
- Author:
- Marc Geilen
- See Also:
OptimizingSDFDirector
,BufferingProfile
- Pt.AcceptedRating:
- Red ()
- Pt.ProposedRating:
- Red (mgeilen)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
-
Fields inherited from class ptolemy.actor.lib.Transformer
input, output
-
Fields inherited from class ptolemy.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _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
Constructors Constructor Description SharedBufferTransformer(CompositeEntity container, java.lang.String name)
Construct an instance of a SharedBufferTransformer.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
_fireCopying()
Fire the actor in shared firing mode.protected abstract void
_fireExclusive()
Fire the actor in exclusive firing mode.int
exclusiveBuffers()
Default value for number of frame buffers required for exclusive firing.int
exclusiveExecutionTime()
Default value for execution time for exclusive firing.void
fire()
Fire according to the value _nextIterationExclusive in shared or exclusive firing mode.void
initialize()
initialize.int
iterate(int iterationCount, boolean fireExclusive)
Invoke a specified number of iterations of the actor in either shared or exclusive mode as indicated by the fireExclusive argument.int
sharedBuffers()
Default value for number of frame buffers required for shared firing.int
sharedExecutionTime()
Default value for execution time for shared firing.-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, 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
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, 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, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable, wrapup
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Constructor Detail
-
SharedBufferTransformer
public SharedBufferTransformer(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
Construct an instance of a SharedBufferTransformer. Should not be used because this in an abstract class. TODO Is there a way to avoid defining a constructor for this abstract class?- 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.
-
-
Method Detail
-
initialize
public void initialize() throws IllegalActionException
initialize. Set the default firing to non exclusive.- Specified by:
initialize
in interfaceInitializable
- Overrides:
initialize
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- If a derived class throws it.
-
fire
public void fire() throws IllegalActionException
Fire according to the value _nextIterationExclusive in shared or exclusive firing mode.- Specified by:
fire
in interfaceExecutable
- Overrides:
fire
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- Not thrown in this base class.
-
sharedBuffers
public int sharedBuffers()
Default value for number of frame buffers required for shared firing.- Specified by:
sharedBuffers
in interfaceBufferingProfile
- Returns:
- the number of buffers required for a shared buffer firing
-
exclusiveBuffers
public int exclusiveBuffers()
Default value for number of frame buffers required for exclusive firing.- Specified by:
exclusiveBuffers
in interfaceBufferingProfile
- Returns:
- the number of buffers required for an exclusive buffer firing
-
sharedExecutionTime
public int sharedExecutionTime()
Default value for execution time for shared firing.- Specified by:
sharedExecutionTime
in interfaceBufferingProfile
- Returns:
- execution time of a shared buffer firing
-
exclusiveExecutionTime
public int exclusiveExecutionTime()
Default value for execution time for exclusive firing.- Specified by:
exclusiveExecutionTime
in interfaceBufferingProfile
- Returns:
- execution time of an exclusive buffer firing
-
iterate
public int iterate(int iterationCount, boolean fireExclusive) throws IllegalActionException
Invoke a specified number of iterations of the actor in either shared or exclusive mode as indicated by the fireExclusive argument.- Specified by:
iterate
in interfaceBufferingProfile
- Parameters:
iterationCount
- The number of iterations to perform.fireExclusive
- whether to fire exclusive or not.- Returns:
- NOT_READY, STOP_ITERATING, or COMPLETED.
- Throws:
IllegalActionException
- If iterating is not permitted, or if prefire(), fire(), or postfire() throw it.
-
_fireCopying
protected abstract void _fireCopying() throws IllegalActionException
Fire the actor in shared firing mode. Shared firing method to be implemented in subclasses.- Throws:
IllegalActionException
- If thrown while writing to the port.
-
_fireExclusive
protected abstract void _fireExclusive() throws IllegalActionException
Fire the actor in exclusive firing mode. Exclusive firing method to be implemented in subclasses.- Throws:
IllegalActionException
- If thrown while writing to the port.
-
-