ptolemy.domains.ddf.lib
Class DDFSingleTokenCommutator
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.actor.lib.SingleTokenCommutator
ptolemy.domains.ddf.lib.DDFSingleTokenCommutator
- 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 DDFSingleTokenCommutator
- extends SingleTokenCommutator
The DDFSingleTokenCommutator has a multiport input port and an output
port. The types of the ports are undeclared and will be resolved by
the type resolution mechanism, with the constraint that the output
type must be greater than or equal to the input type. On each call to
the fire() method, the actor reads one token from the current input
channel, and writes the token to the output port. Then in the postfire()
method, it will update token consumption rate of the input port so that
it will read token from the next channel in the next iteration.
- Since:
- Ptolemy II 4.1
- Version:
- $Id: DDFSingleTokenCommutator.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Gang Zhou
- 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 |
Method Summary |
void |
connectionsChanged(Port port)
Pre-calculate the rates to be set in the rate parameter of the
input port. |
void |
initialize()
Begin execution by setting rate parameter indicating it will
read the zeroth input channel. |
boolean |
postfire()
Update rate parameter indicating the next input channel. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, 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 |
_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 |
input_tokenConsumptionRate
public Parameter input_tokenConsumptionRate
- This parameter provides token consumption rate for each input
channel. The type is array of ints.
_one
private static final IntToken _one
- A final static IntToken with value 1.
_zero
private static final IntToken _zero
- A final static IntToken with value 0.
_rateArray
private ArrayToken[] _rateArray
- An array of ArrayTokens to be used to set tokenConsumptionRate
of the input port. Each ArrayToken indicates the input
port needs to consume one token from a corresponding channel and
no token from the rest of the channels. The array is initialized
in the method connectionsChanged().
DDFSingleTokenCommutator
public DDFSingleTokenCommutator(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor in the specified container with the specified name.
- Parameters:
container
- The container.name
- This is the name of this distributor within the container.
- Throws:
NameDuplicationException
- If an actor
with an identical name already exists in the container.
IllegalActionException
- If the actor cannot be contained
by the proposed container.
connectionsChanged
public void connectionsChanged(Port port)
- Pre-calculate the rates to be set in the rate parameter of the
input port. Initialize the private variable _rateArray,
each element of which indicates the input port needs to
consume one token from a corresponding channel and no token from
the rest of the channels.
- Overrides:
connectionsChanged
in class AtomicActor
- Parameters:
port
- The port that has connection changes.
initialize
public void initialize()
throws IllegalActionException
- Begin execution by setting rate parameter indicating it will
read the zeroth input channel.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class SingleTokenCommutator
- Throws:
IllegalActionException
- If there is no director.
postfire
public boolean postfire()
throws IllegalActionException
- Update rate parameter indicating the next input channel.
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class SingleTokenCommutator
- Returns:
- True if execution can continue into the next iteration.
- Throws:
IllegalActionException
- If any called method throws
IllegalActionException.