ptolemy.domains.ci.lib
Class BinarySwitch
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.ci.lib.BinarySwitch
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class BinarySwitch
- extends TypedAtomicActor
An actor that calls Thread.sleep() on the current thread the first
time fire() is called. The sleep delays the inputs for a certain
amount of real time, specified by the sleepTime parameter.
Note that one way to slow down the execution of a model while running
inside vergil is to turn on animation.
If the width of the output port is less than that of the input port,
the tokens in the extra channels are lost.
- Since:
- Ptolemy II 2.2
- Version:
- $Id: BinarySwitch.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Yang Zhao, based on Sleep by Jie Liu, Christopher Hylands
- 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 |
BinarySwitch(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
void |
fire()
Call Thread.sleep() the first time fire is called and then
transfer tokens from inputs to outputs, one token from each
channel. |
boolean |
prefire()
Reset the flag that fire() checks so that fire() only sleeps once. |
void |
preinitialize()
Create receivers. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, 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 |
q1_len
public TypedIOPort q1_len
q2_len
public TypedIOPort q2_len
pkt_in
public TypedIOPort pkt_in
q1_out
public TypedIOPort q1_out
q2_out
public TypedIOPort q2_out
_q1len
private int _q1len
_q2len
private int _q2len
BinarySwitch
public BinarySwitch(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the given container and name.
- 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.
fire
public void fire()
throws IllegalActionException
- Call Thread.sleep() the first time fire is called and then
transfer tokens from inputs to outputs, one token from each
channel. If fire() is called twice in a row without an
intervening call to either postfire() or prefire(), then no
output is produced.
If the width of the output port is less than
that of the input port, the tokens in the extra channels
are lost.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- Not thrown in this base class
prefire
public boolean prefire()
throws IllegalActionException
- Reset the flag that fire() checks so that fire() only sleeps once.
- Specified by:
prefire
in interface Executable
- Overrides:
prefire
in class AtomicActor
- Returns:
- Whatever the superclass returns (probably true).
- Throws:
IllegalActionException
- If the parent class throws it.
preinitialize
public void preinitialize()
throws IllegalActionException
- Description copied from class:
AtomicActor
- Create receivers. Derived classes
can override this method to perform additional initialization
functions, but they should call this base class methods or
create the receivers themselves.
This method gets executed exactly once prior to any other
action methods. It cannot produce output data since type
resolution is typically not yet done. It also gets invoked
prior to any static scheduling that might occur in the domain,
so it can change scheduling information.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- Not thrown in this base class.