ptolemy.domains.csp.lib
Class Buffer
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.csp.kernel.CSPActor
ptolemy.domains.csp.lib.Buffer
- 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 Buffer
- extends CSPActor
FIXME
If the capacity changes during execution, and the buffer already
contains more tokens than the new capacity, then no tokens are lost,
but no new tokens are accepted at the input until the number of
buffered tokens drops below the capacity.
- Since:
- Ptolemy II 5.2
- Version:
- $Id: Buffer.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee
- 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 |
Constructor Summary |
Buffer(CompositeEntity container,
java.lang.String name)
Construct an actor in the specified container with the specified
name. |
Method Summary |
void |
fire()
If the buffer is not full, then accept any input rendezvous;
if the buffer has tokens, then accept any output rendezvous. |
void |
initialize()
Clear the buffer. |
boolean |
postfire()
Return true unless none of the branches were enabled in
the most recent invocation of fire(). |
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.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 |
capacity
public Parameter capacity
- The capacity of the buffer. To provide "infinite" capacity,
set this to a negative number.
input
public TypedIOPort input
- The input port.
output
public TypedIOPort output
- The output port. The type of this output is constrained
to be at least that of the input.
_buffer
private java.util.List _buffer
- The current buffer.
_branchEnabled
private boolean _branchEnabled
- Indicator that a branch was successfully enabled in the fire() method.
_VERBOSE_DEBUGGING
private static boolean _VERBOSE_DEBUGGING
- Flag to set verbose debugging messages.
Buffer
public Buffer(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor 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.
- Parameters:
container
- The container.name
- The name.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
an actor already in the container.
fire
public void fire()
throws IllegalActionException
- If the buffer is not full, then accept any input rendezvous;
if the buffer has tokens, then accept any output rendezvous.
If the rendezvous is with the input, then append the input
token to the end of the buffer. If the rendezvous is with the
output, then take the first token from the buffer and send
it to the output.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If an error occurs during
executing the process, or if the capacity is zero.
TerminateProcessException
- If the process termination
is requested by the director.
initialize
public void initialize()
throws IllegalActionException
- Clear the buffer.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class CSPActor
- Throws:
IllegalActionException
- Not thrown in this base class,
but might be in a derived class.
postfire
public boolean postfire()
- Return true unless none of the branches were enabled in
the most recent invocation of fire().
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class CSPActor
- Returns:
- True if another iteration can occur.