ptolemy.domains.csp.lib
Class CSPBuffer

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.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.domains.csp.kernel.CSPActor
                              extended by ptolemy.domains.csp.lib.CSPBuffer
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, BranchActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class CSPBuffer
extends CSPActor

A single channel buffer. This actor is the canonical example of how to use a CDO construct. It is parameterized by the Parameter "depth", which controls how many Tokens can be stored in this buffer. The default depth of the buffer is 1. The buffer depth is set upon calling the fire method. The fire() method does not return until a TerminateProcessException is thrown.

Since:
Ptolemy II 0.2
Version:
$Id: CSPBuffer.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Neil Smyth
See Also:
Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Red (nsmyth)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
private  Token[] _buffer
           
private  int _readFrom
           
private  int _size
           
private  int _writeTo
           
 Parameter depth
          The Parameter storing the depth of the buffer.
 TypedIOPort input
          The input port for this actor.
 TypedIOPort output
          The output port for this actor.
 
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 
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
CSPBuffer()
          Deprecated. Use ptolemy.domains.csp.lib.Buffer instead.
CSPBuffer(TypedCompositeActor container, java.lang.String name)
          Construct a CSPBuffer in the specified container with the specified name.
CSPBuffer(TypedCompositeActor container, java.lang.String name, int theDepth)
          Construct a CSPBuffer in the specified container with the specified name.
 
Method Summary
 void fire()
          Executes the code in this actor.
 
Methods inherited from class ptolemy.domains.csp.kernel.CSPActor
_cancelDelay, _continue, _waitForDeadlock, chooseBranch, clone, delay, getBranchController, initialize, postfire, terminate
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, 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.InstantiableNamedObj
_setParent, exportMoML, 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, _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
 
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, prefire, stop, stopFire
 
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
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

input

public TypedIOPort input
The input port for this actor.


output

public TypedIOPort output
The output port for this actor.


depth

public Parameter depth
The Parameter storing the depth of the buffer.


_buffer

private Token[] _buffer

_size

private int _size

_writeTo

private int _writeTo

_readFrom

private int _readFrom
Constructor Detail

CSPBuffer

public CSPBuffer()
          throws IllegalActionException,
                 NameDuplicationException
Deprecated. Use ptolemy.domains.csp.lib.Buffer instead.

Construct a CSPBuffer in the default workspace with an empty string as its name. The actor is parameterized by its depth, which must be an integer. The default depth of the buffer is one. The actor is created with a single input port and a single output port, both of width one. The input port is called "input", and similarly, the output port is called "output". The object is added to the workspace directory. Increment the version number of the workspace.

Throws:
IllegalActionException - If the port or parameter cannot be contained by this actor.
NameDuplicationException - If the port name coincides with a port already in this actor, or if the parameter name coincides with a parameter already in this actor.

CSPBuffer

public CSPBuffer(TypedCompositeActor container,
                 java.lang.String name)
          throws IllegalActionException,
                 NameDuplicationException
Construct a CSPBuffer 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. The actor is parameterized by its depth, which must be an integer. The default depth of the buffer is one. The actor is created with a single input port and a single output port, both of width one. The input port is called "input", and similarly, the output port is called "output".

Parameters:
container - The TypedCompositeActor that contains this actor.
name - The actor's name.
Throws:
IllegalActionException - If the entity cannot be contained by the proposed container.
NameDuplicationException - If the name argument coincides with an entity already in the container.

CSPBuffer

public CSPBuffer(TypedCompositeActor container,
                 java.lang.String name,
                 int theDepth)
          throws IllegalActionException,
                 NameDuplicationException
Construct a CSPBuffer 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. The actor is parameterized by its depth, which must be an integer. The buffer depth is assigned to the value passed in. The actor is created with a single input port and a single output port, both of width one. The input port is called "input", and similarly, the output port is called "output".

Parameters:
container - The TypedCompositeActor that contains this actor.
name - The actor's name.
theDepth - The depth of this buffer.
Throws:
IllegalActionException - If the entity cannot be contained by the proposed container.
NameDuplicationException - If the name argument coincides with an entity already in the container.
Method Detail

fire

public void fire()
          throws IllegalActionException
Executes the code in this actor. This actor uses a CDO construct so that it is always able to receive or send a token, depending on the state of the buffer. It is the canonical example of using a CDO. This process continues executing until a TerminateProcessException is thrown.

Specified by:
fire in interface Executable
Overrides:
fire in class AtomicActor
Throws:
IllegalActionException - If an error occurs during executing the process.