ptolemy.codegen.c.targets.openRTOS.domains.fsm.kernel
Class FSMDirector

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.codegen.kernel.CodeGeneratorHelper
          extended by ptolemy.codegen.actor.Director
              extended by ptolemy.codegen.c.domains.fsm.kernel.FSMDirector
                  extended by ptolemy.codegen.c.targets.openRTOS.domains.fsm.kernel.FSMDirector
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, ActorCodeGenerator, ComponentCodeGenerator, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class FSMDirector
extends FSMDirector

Code generator helper associated with the OpenRTOS FSMDirector class. This class is also associated with a code generator.

Since:
Ptolemy II 8.0
Version:
$Id: FSMDirector.java 57044 2010-01-27 22:41:05Z cxh $
Author:
Shanna-Shaye Forbes,Ben Lickly
See Also:
Serialized Form
Accepted Rating:
Red (sssf)
Proposed Rating:
Red (sssf)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
CodeGeneratorHelper.Channel, CodeGeneratorHelper.VariableScope
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
 
Fields inherited from class ptolemy.codegen.actor.Director
_director, _eol, _INDENT1, _INDENT2, _INDENT3, _INDENT4
 
Fields inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
_codeGenerator, _codeStream, _parseTreeCodeGenerator, _portConversions, _referencedParameters
 
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
FSMDirector(FSMDirector fsmDirector)
          Construct the code generator helper associated with the given FSMDirector.
 
Method Summary
private  java.lang.String _generateActorCode()
          Generate code for all the actors associated with the given FSMDirector.
protected  void _generateRefinementCode(java.lang.StringBuffer code)
          Generate code for the firing of refinements.
private  java.lang.String _getActorName(Actor actor)
          Generates the name of an actor
 java.lang.String generateFireFunctionCode()
          Generate The fire function code.
 java.lang.String generatePreinitializeCode()
          Generate the preinitialization code for the director.
 void generateTransferOutputsCode(IOPort outputPort, java.lang.StringBuffer code)
          Generate the code to transfer outputs from a port to its receiver.
 double getWCET()
          Return the worst case execution time (WCET) seen by this director.
 
Methods inherited from class ptolemy.codegen.c.domains.fsm.kernel.FSMDirector
generateFireCode
 
Methods inherited from class ptolemy.codegen.actor.Director
_ceilToPowerOfTwo, _getIndentPrefix, _updateConnectedPortsOffset, _updatePortOffset, createOffsetVariablesIfNeeded, generateCodeForGet, generateCodeForSend, generateInitializeCode, generateMainLoop, generateModeTransitionCode, generateOffset, generatePostfireCode, generateTransferInputsCode, generateVariableDeclaration, generateVariableInitialization, generateWrapupCode, getBufferSize, getComponent, getHeaderFiles, getIncludeDirectories, getLibraries, getLibraryDirectories, getModifiedVariables, getReference, getReference, getReferenceChannels
 
Methods inherited from class ptolemy.codegen.kernel.CodeGeneratorHelper
_createBufferSizeAndOffsetMap, _createInputBufferSizeAndOffsetMap, _findClosedParen, _generateBlockCode, _generateBlockCode, _generateFireCode, _generateTypeConvertMethod, _generateTypeConvertStatement, _generateTypeConvertStatements, _getCastType, _getChannelAndOffset, _getFireFunctionArguments, _getHelper, _getHelper, _getReference, _getReferenceChannels, _getTypeConvertChannels, _getTypeConvertReference, _indexOf, _replaceMacro, addFunctionUsed, addNewTypeUsed, analyzeTypeConvert, checkLocal, checkRemote, codeGenType, copyFilesToCodeDirectory, generateChannelOffset, generateFireFunctionCode2, generateName, generateOffset, generatePortReference, generatePrefireCode, generateSimpleName, generateTypeConvertFireCode, generateTypeConvertFireCode, generateVariableName, getBufferSize, getCodeGenerator, getDefaultBlocks, getDirector, getDirectorHelper, getFunctionInvocation, getNewInvocation, getObject, getParameterValue, getParseTreeCodeGenerator, getPort, getRates, getReadOffset, getReference, getReference, getReference, getReference, getSharedCode, getSinkChannels, getSize, getSourceChannel, getWriteOffset, isPrimitive, isPrimitive, parseList, processCode, resetInputPortsOffset, setBufferSize, setCodeGenerator, setReadOffset, setWriteOffset, targetType, toString
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getContainedObject, _isMoMLSuppressed, _markContentsDerived, _propagateExistence, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getContainer, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setName, setPersistent, setSource, sortContainedObjects, toplevel, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FSMDirector

public FSMDirector(FSMDirector fsmDirector)
Construct the code generator helper associated with the given FSMDirector.

Parameters:
fsmDirector - The associated ptolemy.domains.fsm.kernel.FSMDirector
Method Detail

generateFireFunctionCode

public java.lang.String generateFireFunctionCode()
                                          throws IllegalActionException
Generate The fire function code. This method is called when the firing code of each actor is not inlined. Each actor's firing code is in a function with the same name as that of the actor.

Specified by:
generateFireFunctionCode in interface ActorCodeGenerator
Overrides:
generateFireFunctionCode in class FSMDirector
Returns:
The fire function code.
Throws:
IllegalActionException - If thrown while generating fire code.

generatePreinitializeCode

public java.lang.String generatePreinitializeCode()
                                           throws IllegalActionException
Generate the preinitialization code for the director.

Specified by:
generatePreinitializeCode in interface ActorCodeGenerator
Overrides:
generatePreinitializeCode in class Director
Returns:
string containing the preinitializaton code
Throws:
IllegalActionException - If thrown by the superclass or thrown while generating code for the director.

generateTransferOutputsCode

public void generateTransferOutputsCode(IOPort outputPort,
                                        java.lang.StringBuffer code)
                                 throws IllegalActionException
Generate the code to transfer outputs from a port to its receiver.

Overrides:
generateTransferOutputsCode in class Director
Parameters:
outputPort - - the port generating output
code - - StringBuffer the generated code should appended to.
Throws:
IllegalActionException - If thrown by the superclass.

getWCET

public double getWCET()
               throws IllegalActionException
Return the worst case execution time (WCET) seen by this director.

Overrides:
getWCET in class Director
Returns:
The Worst Case Execution Time (WCET).
Throws:
IllegalActionException - If there is a problem determining the WCET or a problem accessing the model.

_generateRefinementCode

protected void _generateRefinementCode(java.lang.StringBuffer code)
                                throws IllegalActionException
Generate code for the firing of refinements.

Overrides:
_generateRefinementCode in class FSMDirector
Parameters:
code - The string buffer that the generated code is appended to.
Throws:
IllegalActionException - If the helper associated with an actor throws it while generating fire code for the actor.

_generateActorCode

private java.lang.String _generateActorCode()
                                     throws IllegalActionException
Generate code for all the actors associated with the given FSMDirector.

Returns:
String containing the actor code.
Throws:
IllegalActionException - If throw while accessing the model.

_getActorName

private java.lang.String _getActorName(Actor actor)
Generates the name of an actor

Parameters:
actor - - The actor whose name is to be determined
Returns:
string with the actors full name