ptolemy.actor.lib.vhdl
Class QueuedTypedIOPort

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.Port
          extended by ptolemy.kernel.ComponentPort
              extended by ptolemy.actor.IOPort
                  extended by ptolemy.actor.TypedIOPort
                      extended by ptolemy.actor.lib.vhdl.QueuedTypedIOPort
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, HasTypeConstraints, Typeable, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class QueuedTypedIOPort
extends TypedIOPort

Delays each fixed point token sent on the port by the specified latency parameter and then outputs it via the parent TypedIOPort. Initially will output NIL until one input can be sent.

Since:
Ptolemy II 6.0
Version:
$Id: QueuedTypedIOPort.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Man-Kit Leung
See Also:
Serialized Form
Accepted Rating:
Red (mankit)
Proposed Rating:
Red (mankit)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
private  Token _oldToken
          The previous token.
private  Token initialToken
          The initial output value of the port.
private  int latency
          The latency of the port.
private  java.util.LinkedList<Token> myQueue
          The token queue.
 
Fields inherited from class ptolemy.actor.TypedIOPort
TYPE
 
Fields inherited from class ptolemy.actor.IOPort
_hasPortEventListeners, _portEventListeners, CONFIGURATION, RECEIVERS, REMOTERECEIVERS
 
Fields inherited from class ptolemy.kernel.Port
_insideLinks, _relationsList
 
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
QueuedTypedIOPort(ComponentEntity container, java.lang.String name, boolean isInput, boolean isOutput)
          Construct a QueuedTypedIOPort with a container and a name that is either an input, an output, or both, depending on the third and fourth arguments.
 
Method Summary
private  void _createQueue()
          Create a token queue for the port.
 void clear()
          Clear the queue.
 void resend(int channelIndex)
          Resend the token from the given channel index.
 void resize(int size)
          Set the size of the queue.
 void send(int channelIndex, Token token)
          Enqueue the token that is being sent and send to the parent whatever is at the end of the queue.
 void setInitToken(Token initialValue)
          Set the initial token value.
 void setSize(int size, Token initialValue)
          Set the size of the queue.
 
Methods inherited from class ptolemy.actor.TypedIOPort
_checkContainer, _checkLiberalLink, _checkLink, _checkType, _description, addTypeListener, attributeChanged, broadcast, broadcast, clone, convert, getType, getTypeTerm, isTypeAcceptable, removeTypeListener, send, sendInside, setTypeAtLeast, setTypeAtLeast, setTypeAtMost, setTypeEquals, setTypeSameAs, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.IOPort
_checkLiberalLink, _exportMoMLContents, _getInsideWidth, _getOutsideWidth, _getReceiversLinkedToGroup, _newInsideReceiver, _newReceiver, _notifyPortEventListeners, _removeReceivers, addIOPortEventListener, broadcastClear, checkWidthConstraints, createReceivers, deepConnectedInPortList, deepConnectedInPorts, deepConnectedOutPortList, deepConnectedOutPorts, deepGetReceivers, get, get, getChannelForReceiver, getCurrentTime, getDefaultWidth, getInside, getInsideReceivers, getModelTime, getReceivers, getReceivers, getReceivers, getRelationIndex, getRemoteReceivers, getRemoteReceivers, getWidth, getWidthFromConstraints, getWidthInside, hasRoom, hasRoomInside, hasToken, hasToken, hasTokenInside, hasWidthConstraints, insertLink, insideSinkPortList, insideSourcePortList, isInput, isInsideConnected, isKnown, isKnown, isKnownInside, isMultiport, isOutput, isOutsideConnected, liberalLink, link, numberOfSinks, numberOfSources, removeIOPortEventListener, sendClear, sendClearInside, setContainer, setDefaultWidth, setInput, setMultiport, setOutput, setWidthEquals, setWidthEquals, sinkPortList, sourcePortList, transferInputs, transferOutputs, unlink, unlink, unlinkAll, unlinkAllInside, unlinkInside, unlinkInside
 
Methods inherited from class ptolemy.kernel.ComponentPort
_deepConnectedPortList, _deepConnectedPorts, _deepInsidePortList, _deepInsidePorts, _isInsideLinkable, deepConnectedPortList, deepConnectedPorts, deepInsidePortList, deepInsidePorts, insertInsideLink, insidePortList, insidePorts, insideRelationList, insideRelations, isDeeplyConnected, isInsideGroupLinked, isInsideLinked, isOpaque, numInsideLinks
 
Methods inherited from class ptolemy.kernel.Port
_getContainedObject, _propagateExistence, connectedPortList, connectedPorts, getContainer, isGroupLinked, isLinked, linkedRelationList, linkedRelations, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, numLinks, setName
 
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, _validateSettables, addChangeListener, addDebugListener, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

myQueue

private java.util.LinkedList<Token> myQueue
The token queue.


_oldToken

private Token _oldToken
The previous token.


latency

private int latency
The latency of the port.


initialToken

private Token initialToken
The initial output value of the port.

Constructor Detail

QueuedTypedIOPort

public QueuedTypedIOPort(ComponentEntity container,
                         java.lang.String name,
                         boolean isInput,
                         boolean isOutput)
                  throws IllegalActionException,
                         NameDuplicationException
Construct a QueuedTypedIOPort with a container and a name that is either an input, an output, or both, depending on the third and fourth arguments. The specified container must implement the TypedActor interface or an exception will be thrown.

Parameters:
container - The container actor.
name - The name of the port.
isInput - True if this is to be an input port.
isOutput - True if this is to be an output port.
Throws:
IllegalActionException - If the port is not of an acceptable class for the container, or if the container does not implement the TypedActor interface.
NameDuplicationException - If the name coincides with a port already in the container.
Method Detail

setSize

public void setSize(int size,
                    Token initialValue)
Set the size of the queue. This operation will clear whatever is currently enqueued and create a queue of the new size.

Parameters:
size - The size of the queue.
initialValue - The initial value of the queue.

resize

public void resize(int size)
Set the size of the queue. This operation will clear whatever is currently enqueued and create a queue of the new size.

Parameters:
size - The size of the queue.

clear

public void clear()
Clear the queue.


setInitToken

public void setInitToken(Token initialValue)
Set the initial token value.

Parameters:
initialValue - The initial value of the token.

_createQueue

private void _createQueue()
Create a token queue for the port.


send

public void send(int channelIndex,
                 Token token)
          throws IllegalActionException,
                 NoRoomException
Enqueue the token that is being sent and send to the parent whatever is at the end of the queue.

Overrides:
send in class TypedIOPort
Parameters:
channelIndex - The channel on which to send the token.
token - The token to be sent.
Throws:
IllegalActionException - If thrown while sending to the channel.
NoRoomException - If thrown while sending to the channel.

resend

public void resend(int channelIndex)
            throws IllegalActionException,
                   NoRoomException
Resend the token from the given channel index.

Parameters:
channelIndex - The given channel index.
Throws:
IllegalActionException - If super class throws it.
NoRoomException - If super class throws it.