ptolemy.domains.gr.kernel
Class GRScheduler

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.util.Attribute
          extended by ptolemy.actor.sched.Scheduler
              extended by ptolemy.domains.gr.kernel.GRScheduler
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class GRScheduler
extends Scheduler

A scheduler that implements scheduling of the active parts of a GR scene graph. The scene graph is assumed to be a directed acyclic graph. Scheduling is done by performing a topological sort on all the actors.

Since:
Ptolemy II 1.0
Version:
$Id: GRScheduler.java 57040 2010-01-27 20:52:32Z cxh $
Author:
C. Fong, Steve Neuendorffer
See Also:
Scheduler, Serialized Form
Accepted Rating:
yellow (vogel)
Proposed Rating:
yellow (chf)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
private static java.lang.String _STATIC_NAME
           
 
Fields inherited from class ptolemy.actor.sched.Scheduler
_DEFAULT_SCHEDULER_NAME
 
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
GRScheduler()
          Construct a scheduler with no container (director) in the default workspace, the name of the scheduler is "GRScheduler".
GRScheduler(Director container, java.lang.String name)
          Construct a scheduler in the given container with the given name.
GRScheduler(Workspace workspace)
          Construct a scheduler in the given workspace with the name "GRScheduler".
 
Method Summary
protected  Schedule _getSchedule()
          Return the scheduling sequence.
 
Methods inherited from class ptolemy.actor.sched.Scheduler
clone, getSchedule, isValid, setContainer, setValid
 
Methods inherited from class ptolemy.kernel.util.Attribute
_checkContainer, _getContainedObject, _propagateExistence, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setName, updateContent
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, 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

_STATIC_NAME

private static final java.lang.String _STATIC_NAME
See Also:
Constant Field Values
Constructor Detail

GRScheduler

public GRScheduler()
Construct a scheduler with no container (director) in the default workspace, the name of the scheduler is "GRScheduler".


GRScheduler

public GRScheduler(Workspace workspace)
Construct a scheduler in the given workspace with the name "GRScheduler". If the workspace argument is null, use the default workspace. The scheduler is added to the list of objects in the workspace. Increment the version number of the workspace.

Parameters:
workspace - Object for synchronization and version tracking.

GRScheduler

public GRScheduler(Director container,
                   java.lang.String name)
            throws IllegalActionException,
                   NameDuplicationException
Construct a scheduler in the given container with the given name. The container argument must not be null, or a NullPointerException will be thrown. This attribute will use the workspace of the container for synchronization and version counts. If the name argument is null, then the name is set to the empty string. Increment the version of the workspace.

Parameters:
container - The container.
name - The name of this attribute.
Throws:
IllegalActionException - If the attribute is not of an acceptable class for the container, or if the name contains a period.
NameDuplicationException - If the name coincides with an attribute already in the container.
Method Detail

_getSchedule

protected Schedule _getSchedule()
Return the scheduling sequence. An exception will be thrown if the graph is not schedulable. This occurs in the following circumstances:

Overrides:
_getSchedule in class Scheduler
Returns:
A Schedule type of the deeply contained opaque entities in the firing order.
Throws:
NotSchedulableException - If the CompositeActor is not schedulable.
See Also:
CompositeEntity.deepEntityList()